在Python中,我能找到的连接两个列表的唯一方法是list。扩展,它修改第一个列表。是否有任何连接函数返回其结果而不修改其参数?


当前回答

是:list1 + list2。这将给出一个新列表,该列表是list1和list2的连接。

其他回答

是:list1 + list2。这将给出一个新列表,该列表是list1和list2的连接。

Concatenated_list = list_1 + list_2

只是想让你知道:

当你写list1 + list2时,你是在调用list1的__add__方法,它会返回一个新的列表。这样你也可以通过在你的个人类中添加__add__方法来处理myobject + list1。

你总是可以创建一个新的列表,这是添加两个列表的结果。

>>> k = [1,2,3] + [4,7,9]
>>> k
[1, 2, 3, 4, 7, 9]

列表是可变序列,所以我认为通过扩展或追加来修改原始列表是有意义的。

如果你有两个以上的列表要连接:

import operator
from functools import reduce  # For Python 3
list1, list2, list3 = [1,2,3], ['a','b','c'], [7,8,9]
reduce(operator.add, [list1, list2, list3])

# or with an existing list
all_lists = [list1, list2, list3]
reduce(operator.add, all_lists)

它实际上并没有为你节省任何时间(仍然创建中间列表),但如果你有一个可变数量的列表要扁平化,例如,*args。