首页 >后端开发 >Python教程 >如何在 Python 中转置列表列表?

如何在 Python 中转置列表列表?

Patricia Arquette
Patricia Arquette原创
2024-12-25 20:25:11534浏览

How Can I Transpose a List of Lists in Python?

转置列表的列表

给定列表的列表,例如:

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

我们的目标是转置列表,结果在:

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

使用 zip

Python 中的 zip() 函数将多个可迭代对象中的元素组合到单个元组列表中。我们可以使用 zip 通过将原始列表作为参数序列传递来创建转置列表:

result = list(map(list, zip(*l)))

外部 list() 将元组转换为列表,map() 函数将此转换应用于zip 结果中的每个元素。

使用 zip_longest

itertools.zip_longest() 函数与 zip 类似,但如果迭代的长度不同,它不会丢弃数据。它使用指定的填充值填充较短的可迭代对象(默认为无):

from itertools import zip_longest
result = list(map(list, zip_longest(*l, fillvalue=None)))

说明

转置的关键是使用 zip 来组合来自原始列表的子列表。 zip() 函数生成元组,其中包含同一索引处每个子列表中的一个元素。然后将这些元组转换为列表以创建转置列表的行。

通过使用 * 运算符将原始列表作为 zip 的参数解压,我们可以在一行代码中转置列表。 map() 函数用于确保结果是列表的列表。

以上是如何在 Python 中转置列表列表?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn