python - 我可以使用列表推导来创建列表列表吗?
问题描述
给定这个值:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
有没有办法使用列表推导来产生这个值:
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
?
如果可能的话,我宁愿不使用 zip 来做到这一点。
谢谢!
编辑:我不想使用 zip 的原因是我以前使用 zip 做类似的事情(尽管不是列表列表),并且建议我尝试使用列表理解,这使它更整洁一些。我认为相同的原则可能适用于这里,但可能不适用,因为这是一个列表列表,而不仅仅是像之前的问题那样的单个列表。
此外,我在发布此问题之前的尝试甚至不值得分享。它基本上是一个创建单个列表的列表理解,我不知道如何用它创建一个列表列表。也许事情并没有我希望的那么简单。毕竟我可能会选择 zip。
解决方案
尝试这个:
list1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
使用zip
您可以从内部列表中获取值,并使用*
您可以解压缩这些值
[*zip(*list1)]
或者
list(map(list,zip(*list1)))
推荐阅读
- r - 如何将相关性或相似性表转换为 696x696 矩阵
- gmail - Gmail API:在一封邮件中发送文本和 HTML
- jquery - 物化 css:电子邮件和密码标签在浏览器自动填充上重叠
- button - AHK for Warcraft(非 MultiBox)2 按钮 - 非同时
- qt - XTestFakeKeyEvent 和 unicode(Qt 的问题)
- performance - IE 11 下载 http 响应缓慢
- android - putExtraData 在 Kotlin Intent 中做了什么?
- mysql - yii中没有主键的关系mysql表搜索(调用非整数字段)
- javascript - asp.net网格的javascript行数据比较
- eclipse - xsl 输出 eclipse 中的额外命名空间