我怎么能把[('a', 1), ('c', 3), ('b', 2)]
改成['a',1,'c',3,'b',2]
呢?反之亦然?
谢谢
最佳答案
从[('a', 1), ('c', 3), ('b', 2)]
到['a',1,'c',3,'b',2]
的第一个方向是flattening a list。从那里获取接受的答案并修改以下示例:
>>> L = [('a', 1), ('c', 3), ('b', 2)]
>>> list(itertools.chain(*L))
['a', 1, 'c', 3, 'b', 2]
它使用
itertools.chain
这是itertools
中的一个很好的工具,可以很好地展平序列。相反的方向是拉拉链:
>>> L = ['a', 1, 'c', 3, 'b', 2]
>>> zip(L[0::2], L[1::2])
[('a', 1), ('c', 3), ('b', 2)]
zip
获取两个列表,并在元组中将列表1的第一个元素与列表2的第一个元素组合在一起,依此类推。因此,在这个例子中,我们基本上把偶数索引元素作为第一个列表(L[0::2]
),然后把奇数索引元素作为第二个列表(L[1::2]
)