慕侠2389804
如果您有不同长度的列表,您可能不想使用zip作为Patricks的答案。这样做是可行的:>>> zip(*[('a', 1), ('b', 2), ('c', 3), ('d', 4)])[('a', 'b', 'c', 'd'), (1, 2, 3, 4)]但是,对于不同的长度列表,zip将每一项截断为最短列表的长度:>>> zip(*[('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', )])[('a', 'b', 'c', 'd', 'e')]您可以使用没有函数的map来用None填充空结果:>>> map(None, *[('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', )])[('a', 'b', 'c', 'd', 'e'), (1, 2, 3, 4, None)]但是zip()稍微快一些。