首页 > 解决方案 > 我可以使用列表推导来创建列表列表吗?

问题描述

给定这个值:

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

有没有办法使用列表推导来产生这个值:

[[1, 4, 7], [2, 5, 8], [3, 6, 9]]?

如果可能的话,我宁愿不使用 zip 来做到这一点。

谢谢!

编辑:我不想使用 zip 的原因是我以前使用 zip 做类似的事情(尽管不是列表列表),并且建议我尝试使用列表理解,这使它更整洁一些。我认为相同的原则可能适用于这里,但可能不适用,因为这是一个列表列表,而不仅仅是像之前的问题那样的单个列表。

此外,我在发布此问题之前的尝试甚至不值得分享。它基本上是一个创建单个列表的列表理解,我不知道如何用它创建一个列表列表。也许事情并没有我希望的那么简单。毕竟我可能会选择 zip。

标签: pythonlistlist-comprehension

解决方案


尝试这个:

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

使用zip您可以从内部列表中获取值,并使用*您可以解压缩这些值

[*zip(*list1)]

或者

list(map(list,zip(*list1)))

推荐阅读