我怎么能改变[('a', 1), ('c', 3), ('b', 2)],['a',1,'c',3,'b',2]反之亦然?谢谢
Dan*_*olo 10
从第一方向前进[('a', 1), ('c', 3), ('b', 2)]到['a',1,'c',3,'b',2]是扁平化的列表.从那里接受接受的答案并修改此示例:
>>> L = [('a', 1), ('c', 3), ('b', 2)]
>>> list(itertools.chain(*L))
['a', 1, 'c', 3, 'b', 2]
Run Code Online (Sandbox Code Playgroud)
这使用itertools.chain了一个很好的工具,itertools从而很好地平坦化序列.
相反的方式是拉链:
>>> L = ['a', 1, 'c', 3, 'b', 2]
>>> zip(L[0::2], L[1::2])
[('a', 1), ('c', 3), ('b', 2)]
Run Code Online (Sandbox Code Playgroud)
zip采用两个列表,并将列表1的第一个元素与列表2中元组的第一个元素组合在一起,依此类推列表的长度.所以在这一个中,我们基本上将偶数索引元素作为我们的第一个list(L[0::2]),然后将奇数索引元素作为我们的第二个(L[1::2])