蟒蛇:平拉链

时间:2020-05-21 21:13:03

标签: python

我有

a = [1, 2, 3, 4, 5]
b = ['a', 'b', 'c', 'd']

其中a还有一个元素。 zip(a,b)返回[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]。但是,我要

[1, 'a', 2, 'b', 3, 'c', 4, 'd']

最优雅的方式是什么?

2 个答案:

答案 0 :(得分:2)

itertools具有此功能。

from itertools import chain

a = [1, 2, 3, 4, 5]
b = ['a', 'b', 'c', 'd']
result = list(chain.from_iterable(zip(a, b)))

答案 1 :(得分:1)

使用列表推导,可以使用以下内容:

a = [1, 2, 3, 4, 5]
b = ['a', 'b', 'c', 'd']
result = [item for sublist in zip(a, b) for item in sublist]
# result is [1, 'a', 2, 'b', 3, 'c', 4, 'd']

这使用了https://stackoverflow.com/a/952952/5666087中的列表扁平化理解。