我怎么能把[('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]

09-05 11:50
查看更多