如何在Python中获得两个列表的连接而不修改其中任何一个?

2024-04-26 12:11:35 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: 方法函数列表参数listextend
3条回答

concatenated_list = list_1 + list_2

是的:list1+list2。这给出了一个新列表,它是list1list2的连接。

根据创建后的使用方式,^{}可能是您的最佳选择:

>>> 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)来创建完整列表,但这将在内存中创建一个新列表。

相关问题 更多 >