在python中转置嵌​​套列表 [英] Transpose nested list in python

查看:83
本文介绍了在python中转置嵌​​套列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将此列表中的每个项目移到另一个嵌套列表中,有人可以帮助我吗?

I like to move each item in this list to another nested list could someone help me?

a = [['AAA', '1', '1', '10', '92'], ['BBB', '262', '56', '238', '142'], ['CCC', '86', '84', '149', '30'], ['DDD', '48', '362', '205', '237'], ['EEE', '8', '33', '96', '336'], ['FFF', '39', '82', '89', '140'], ['GGG', '170', '296', '223', '210'], ['HHH', '16', '40', '65', '50'], ['III', '4', '3', '5', '2']]

最后,我将列出这样的列表:

On the end I will make list like this:

[['AAA', 'BBB', 'CCC', 'DDD', 'EEE', 'FFF'.....],
['1', '262', '86', '48', '8', '39', ...],
['1', '56', '84', '362', '33', '82', ...],
['10', '238', '149', '205', '96', '89', ...],
...
...]

推荐答案

zip*map一起使用:

>>> map(list, zip(*a))
[['AAA', 'BBB', 'CCC', 'DDD', 'EEE', 'FFF', 'GGG', 'HHH', 'III'],
 ['1', '262', '86', '48', '8', '39', '170', '16', '4'],
 ['1', '56', '84', '362', '33', '82', '296', '40', '3'],
 ['10', '238', '149', '205', '96', '89', '223', '65', '5'],
 ['92', '142', '30', '237', '336', '140', '210', '50', '2']]

请注意,map在Python 3中返回一个地图对象,因此您需要list(map(list, zip(*a)))

Note that map returns a map object in Python 3, so there you would need list(map(list, zip(*a)))

list comprehensionzip(*...)结合使用,将在Python 2和3中都可以正常工作.

Using a list comprehension with zip(*...), this would work as is in both Python 2 and 3.

[list(x) for x in zip(*a)]


NumPy方式:


NumPy way:

>>> import numpy as np
>>> np.array(a).T.tolist()
[['AAA', 'BBB', 'CCC', 'DDD', 'EEE', 'FFF', 'GGG', 'HHH', 'III'],
 ['1', '262', '86', '48', '8', '39', '170', '16', '4'],
 ['1', '56', '84', '362', '33', '82', '296', '40', '3'],
 ['10', '238', '149', '205', '96', '89', '223', '65', '5'],
 ['92', '142', '30', '237', '336', '140', '210', '50', '2']]

这篇关于在python中转置嵌​​套列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆