如何解压元组到各列表中的一个列表? [重复](How to unzip a list of tu

2019-06-18 14:05发布

可能重复:
转置/解压缩功能在Python

我有元组,在这里我要解压缩此列表分为两个独立的名单列表。 我正在寻找在Python一些规范运作。

>>> l = [(1,2), (3,4), (8,9)]
>>> f_xxx (l)
[ [1, 3, 8], [2, 4, 9] ] 

我在寻找一个简洁和Python的方式来实现这一目标。

基本上,我打猎的逆运算zip()函数。

Answer 1:

使用zip(*list)

>>> l = [(1,2), (3,4), (8,9)]
>>> list(zip(*l))
[(1, 3, 8), (2, 4, 9)]

所述zip()函数对向上从所有输入的元件,从所述第一值,则第二等。通过使用*l你申请的所有元组在l作为独立参数zip()函数 ,所以zip()对高达138第一,然后249 。 那些发生在与列,或换位很好地对应l

zip()产生的元组; 如果你必须有可变的列表对象,只是map()元组列表或使用列表理解,产生一个列表的列表:

map(list, zip(*l))          # keep it a generator
[list(t) for t in zip(*l)]  # consume the zip generator into a list of lists


Answer 2:

如果你想列出的清单:

>>> [list(t) for t in zip(*l)]
[[1, 3, 8], [2, 4, 9]]

如果一个元组列表是OK:

>>> zip(*l)
[(1, 3, 8), (2, 4, 9)]


文章来源: How to unzip a list of tuples into individual lists? [duplicate]