在 Python 中,我可以找到的将两个列表连接起来的唯一方法是list.extend
,它修改了第一个列表。是否有任何串联函数返回其结果而不修改其参数?
是: list1 + list2
。这给出了一个新列表,该列表是list1
和list2
的串联。
最简单的方法就是使用+
运算符,该运算符返回列表的串联:
concat = first_list + second_list
这种方法的一个缺点是现在使用了两倍的内存。对于非常大的列表,取决于创建后如何使用它, itertools.chain
可能是最好的选择:
>>> import itertools
>>> a = [1, 2, 3]
>>> b = [4, 5, 6]
>>> c = itertools.chain(a, b)
这将为组合列表中的项目创建一个生成器,其优点是不需要创建新列表,但是您仍然可以使用c
就像它是两个列表的串联一样:
>>> for i in c:
... print i
1
2
3
4
5
6
如果您的列表很大并且效率是一个问题,那么itertools
模块中的此方法和其他方法将非常容易知道。
请注意,此示例用尽了c
的项目,因此您需要重新初始化它,然后才能重新使用它。当然,您可以只使用list(c)
创建完整列表,但这将在内存中创建一个新列表。
concatenated_list = list_1 + list_2