Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python转置除第一列以外的列表列表_Python_List_Transpose - Fatal编程技术网

python转置除第一列以外的列表列表

python转置除第一列以外的列表列表,python,list,transpose,Python,List,Transpose,我们可以使用 map(list, zip(*l)) 除了内部列表的第一个元素外,我们是否可以更改上面命令中的某些内容以转置以下列表 l = [["item1",1,2,3],["item2",4,5,6],["item3",7,8,9]] 我想要的结果是 r = [["item1",1,4,7],["item2",2,5,8],["item3",3,6,9]] 如果你想使用熊猫,有更简单的方法 headers = [item[0] for item in l] data = [item[1

我们可以使用

map(list, zip(*l))
除了内部列表的第一个元素外,我们是否可以更改上面命令中的某些内容以转置以下列表

l = [["item1",1,2,3],["item2",4,5,6],["item3",7,8,9]]
我想要的结果是

r = [["item1",1,4,7],["item2",2,5,8],["item3",3,6,9]]

如果你想使用熊猫,有更简单的方法

headers = [item[0] for item in l]
data = [item[1:] for item in l]
r = map(list, zip(*data))
for i, item in enumerate(r):
    item.insert(0, headers[i])
替代解决方案:

In [2]: it = [iter(x) for x in l]

In [3]: [list(x) for x in zip([next(x) for x in it], *it)]
Out[3]: [['item1', 1, 4, 7], ['item2', 2, 5, 8], ['item3', 3, 6, 9]]
首先,这将在
l
it
)的子列表上构建迭代器列表

[next(x)for x in it]
推进
it
中的每个迭代器,并将结果(列表的第一个元素)收集到一个列表中,然后将该列表与
it
中先前递增的迭代器一起压缩