Skip to main content
 首页 » 编程设计

python之将列表列表的 "colums"加入列表列表的 "rows"

2025年05月04日15mayingbao

假设我有几个长度为 n 的列表:

a = [1, 2, 3] 
b = [4, 5, 6] 
c = [7, 8, 9] 
d = [-1, -2, -3] 

我将这些列表放入一个列表中:

x = [a, b, c] 

现在我想以下面的列表结束:

y = [[1, 4, 7, -1], [2, 5, 8, -2], [3, 6, 9, -3]] 

什么是快速和 pythonic 的方法来做到这一点? (从 x 到 y。)

条目可以是任何东西,我使用数字只是因为它们形象化。

请您参考如下方法:

有一种非常简单的 pythonic 方法可以以这种方式“反向压缩”列表。简单使用zip函数和解包操作符*:

>>> y = zip(*x) 
>>> list(y) 
[(1, 4, 7, -1), (2, 5, 8, -2), (3, 6, 9, -3)] 

有关正在发生的事情的更多信息,请参阅 What is the inverse function of zip in python?

如果它是列表的列表而不是元组列表很重要,您可以执行以下操作:

>>> [list(i) for i in zip(*x)] 
[[1, 4, 7, -1], [2, 5, 8, -2], [3, 6, 9, -3]]