作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
Possible Duplicate:
A Transpose/Unzip Function in 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)]
>>> list(zip(*l))
[(1, 3, 8), (2, 4, 9)]
zip()
function将所有输入的元素配对,从第一个值开始,然后是第二个,等等。通过使用 *l
你 apply all tuples in l
as separate arguments to the zip()
function ,所以 zip()
先将 1
与 3
与 8
配对,然后是 2
带有 4
和 9
。这些恰好与列或 l
的 transposition 对应。
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
关于python - 如何将元组列表解压缩到单个列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12974474/
我是一名优秀的程序员,十分优秀!