如何将一个元组列表解压到单个列表中?
可能重复:
Python中的转置/解压缩函数
我有一个元组列表,我想把这个列表解压到两个独立的列表中。 我正在寻找一些Python的标准化操作。
>>> l = [(1,2), (3,4), (8,9)] >>> f_xxx (l) [ [1, 3, 8], [2, 4, 9] ]
我正在寻找一个简洁和pythonic的方式来实现这一目标。
基本上,我正在寻找zip()
函数的逆操作。
使用zip(*list)
:
>>> l = [(1,2), (3,4), (8,9)] >>> zip(*l) [(1, 3, 8), (2, 4, 9)]
zip()
函数将所有input中的元素配对,从第一个值开始,然后是第二个元素等。通过使用*l
, 将 *l
所有元组作为zip()
函数的单独参数应用 ,因此zip()
对先用8
再加3
,再用4
和9
。 那些恰好与列对应,或者是l
的换位 。
如果你想要一个列表清单:
>>> [list(t) for t in zip(*l)] [[1, 3, 8], [2, 4, 9]]
如果元组列表正确:
>>> zip(*l) [(1, 3, 8), (2, 4, 9)]