我有以下列表
a=[1,2,3]
b=[4,5,6]
c=[a,b]
我需要结合列表a和b。
结果应该像[1,2,3,4,5,6]
我尝试了列表理解
[x for x in i for i in c]
输出
[3, 3, 4, 4, 5, 5]
如何使用列表推导将结果作为[1,2,3,4,5,6]
。
答案 0 :(得分:1)
import itertools
a=[1,2,3]
b=[4,5,6]
c = list(itertools.chain(a, b))
答案 1 :(得分:1)
你可以这样做:
a + b
如果你必须使用列表理解:
In [10]: a = [1, 2, 3]
In [11]: b = [4, 5, 6]
In [12]: c = [a, b]
In [13]: [j for i in c for j in i]
Out[13]: [1, 2, 3, 4, 5, 6]
答案 2 :(得分:1)
您正在连接,请使用+
执行此操作:
c = a + b
如果要连接任意数量的列表,请使用itertools.chain.from_iterable()
:
from itertools import chain
list_of_lists = [a, b]
c = list(chain.from_iterable(list_of_lists))
请注意,如果你需要做的只是遍历连接结果,你可以完全离开list()
。
不为此使用sum()
;这导致了二次行为,因为为每个求和的元素构建了中间结果,这需要一个完整的循环。
答案 3 :(得分:0)
你可以用+操作
来做a = [1, 2, 3]
b = [3, 4, 5]
c = a + b # Equal [1, 2, 3, 3, 4, 5]
答案 4 :(得分:0)
以下是3种不同的方法:
>>> a=[1,2,3]
>>> b=[4,5,6]
>>> c=a+b
>>> c
[1, 2, 3, 4, 5, 6]
>>> c=[item for l in [a, b] for item in l]
>>> c
[1, 2, 3, 4, 5, 6]
>>> import itertools
>>> list(itertools.chain(*[a, b]))
[1, 2, 3, 4, 5, 6]