我想合并两个真正意义上的列表:
>>> l1 = [1,2,3,4]
>>> l2 = [9,8,7,6]
>>> merged(l1, l2)
[1,9,2,8,3,7,4,6]
我可以轻松地:
>>> m = []
>>> for i1,i2 in zip(l1,l2):
m.extend([i1,i2])
>>> m
[1,9,2,8,3,7,4,6]
但我想知道是否有更优雅的东西?
ps:有数以万计的问题要求合并列表,但我发现没有这样做 - 如果我在迷雾中丢失了真正的那个,我道歉!答案 0 :(得分:2)
[item for items in zip(l1, l2) for item in items]
# [1,9,2,8,3,7,4,6]
或者你可以像这样使用itertools.chain
from itertools import chain
list(chain.from_iterable(zip(l1, l2)))
# [1,9,2,8,3,7,4,6]
答案 1 :(得分:1)
使用zip
和列表理解:
>>> l1 = [1,2,3,4]
>>> l2 = [9,8,7,6]
>>> [x for xs in zip(l1, l2) for x in xs]
[1, 9, 2, 8, 3, 7, 4, 6]
答案 2 :(得分:0)
这个怎么样:
>>> l1 = [1,2,3,4]
>>> l2 = [9,8,7,6]
>>> sum(zip(l1,l2),())
(1, 9, 2, 8, 3, 7, 4, 6)
>>>