如何在Python中串联两个列表?
例:
listone = [1, 2, 3]
listtwo = [4, 5, 6]
预期结果:
>>> joinedlist
[1, 2, 3, 4, 5, 6]
#1楼
您还可以使用extend
来将list
添加到另一个list
的末尾:
listone = [1,2,3]
listtwo = [4,5,6]
mergedlist = []
mergedlist.extend(listone)
mergedlist.extend(listtwo)
#2楼
值得注意的是, itertools.chain
函数接受可变数量的参数:
>>> l1 = ['a']; l2 = ['b', 'c']; l3 = ['d', 'e', 'f']
>>> [i for i in itertools.chain(l1, l2)]
['a', 'b', 'c']
>>> [i for i in itertools.chain(l1, l2, l3)]
['a', 'b', 'c', 'd', 'e', 'f']
如果输入一个可迭代的(元组,列表,生成器等),则可以使用from_iterable
类方法:
>>> il = [['a'], ['b', 'c'], ['d', 'e', 'f']]
>>> [i for i in itertools.chain.from_iterable(il)]
['a', 'b', 'c', 'd', 'e', 'f']
#3楼
您可以简单地使用+
或+=
运算符,如下所示:
a = [1, 2, 3]
b = [4, 5, 6]
c = a + b
要么:
c = []
a = [1, 2, 3]
b = [4, 5, 6]
c += (a + b)
另外,如果您希望合并列表中的值唯一,则可以执行以下操作:
c = list(set(a + b))
#4楼
您可以使用+
运算符组合它们:
listone = [1,2,3]
listtwo = [4,5,6]
joinedlist = listone + listtwo
输出:
>>> joinedlist
[1,2,3,4,5,6]
#5楼
这很简单,我认为它甚至在本教程中已显示:
>>> listone = [1,2,3]
>>> listtwo = [4,5,6]
>>>
>>> listone + listtwo
[1, 2, 3, 4, 5, 6]
#6楼
也可以创建一个生成器,使用itertools.chain()
简单地遍历两个列表中的项目。 这使您可以将列表(或任何可迭代的)链接在一起进行处理,而无需将项目复制到新列表中:
import itertools
for item in itertools.chain(listone, listtwo):
# Do something with each list item
#7楼
您可以使用在list
对象上定义的append()
方法:
mergedlist =[]
for elem in listone:
mergedlist.append(elem)
for elem in listtwo:
mergedlist.append(elem)
#8楼
如果您需要使用复杂的排序规则合并两个有序列表,则可能需要像下面的代码一样滚动它(使用简单的排序规则以提高可读性