我有一个元组列表,我想将此列表解压缩为两个独立的列表。我正在寻找Python中的一些标准化操作。
>>> l = [(1,2), (3,4), (8,9)] >>> f_xxx (l) [ [1, 3, 8], [2, 4, 9] ]
我正在寻找一种简洁明了的方法来实现这一目标。
基本上,我正在寻找zip()函数的逆运算。
zip()
用途zip(*list):
zip(*list)
>>> l = [(1,2), (3,4), (8,9)] >>> list(zip(*l)) [(1, 3, 8), (2, 4, 9)]
该zip()功能对向上从所有输入的元件,从所述第一值,则第二等。通过使用*l你申请的所有元组中l作为 单独的参数 的zip()函数,所以zip()对向上1与3与8第一,然后2用4和9。那些发生在与列,或者很好对应 换位 的l。
*l
l
1
3
8
2
4
9
zip()产生元组;如果必须具有可变的列表对象,则仅map()是要列出的元组,或者使用列表理解来生成列表的列表:
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