Skip to main content
 首页 » 编程设计

python之压缩列表的递归方法

2025年05月04日12kenshinobiy

我有一个嵌套的列表,如下所示,

list1 = [[1,2,3],[4,5,6],[7,8,9],[10,11,12]] 

但是,我想找到一种方法将每个列表的第一个索引与另一个列表的第一个索引连接起来。

list1 = [[1,4,7,10],[2,5,8,11],[3,6,9,12]] 

我尝试使用以下代码进行列表推导

list1 = [[list1[j][i] for j in range(len(list1)) ] for i in range(len(list1[0])) ] 
 
# gives me 
# list1 = [[1,4,7,10],[2,5,8,11],[3,6,9,12]] 

但是,我希望有其他方法可以达到相同的结果,希望是更简单、更优雅的方法。

提前致谢。

请您参考如下方法:

zip是内置方法,不需要外部包:

>>> list1 = [[1,2,3],[4,5,6],[7,8,9],[10,11,12]] 
>>> print([list(x) for x in zip(*list1)]) 
[[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12]] 

注意 *list1!这是必需的,因为 list1 是一个嵌套列表,因此 * 将该列表的元素解压缩到 zip 方法以压缩在一起。然后,由于 zip 返回一个元组列表,我们只需将它们转换为列表(根据您的要求)