赞
踩
如何在Python中串联两个列表?
例:
- listone = [1, 2, 3]
- listtwo = [4, 5, 6]
预期结果:
- >>> joinedlist
- [1, 2, 3, 4, 5, 6]
您还可以使用extend
来将list
添加到另一个list
的末尾:
- listone = [1,2,3]
- listtwo = [4,5,6]
- mergedlist = []
- mergedlist.extend(listone)
- mergedlist.extend(listtwo)
值得注意的是, 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']
您可以简单地使用+
或+=
运算符,如下所示:
- 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))
您可以使用+
运算符组合它们:
- listone = [1,2,3]
- listtwo = [4,5,6]
-
- joinedlist = listone + listtwo
输出:
- >>> joinedlist
- [1,2,3,4,5,6]
这很简单,我认为它甚至在本教程中已显示:
- >>> listone = [1,2,3]
- >>> listtwo = [4,5,6]
- >>>
- >>> listone + listtwo
- [1, 2, 3, 4, 5, 6]
也可以创建一个生成器,使用itertools.chain()
简单地遍历两个列表中的项目。 这使您可以将列表(或任何可迭代的)链接在一起进行处理,而无需将项目复制到新列表中:
- import itertools
- for item in itertools.chain(listone, listtwo):
- # Do something with each list item
您可以使用在list
对象上定义的append()
方法:
- mergedlist =[]
- for elem in listone:
- mergedlist.append(elem)
- for elem in listtwo:
- mergedlist.append(elem)
如果您需要使用复杂的排序规则合并两个有序列表,则可能需要像下面的代码一样滚动它(使用简单的排序规则以提高可读性
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。