You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何对元组构成的列表执行zip操作实现行列转置

Python元组列表转置实现方案

我们需要将结构为[(1, 2, 3), (4, 5, 6), (7, 8, 9)]的元组列表,转换为[[1, 4, 7], [2, 5, 8], [3, 6, 9]]的嵌套列表结构,本质是实现二维结构的行列转置。

实现代码

两种常用写法都可以实现需求:

写法1:map+zip组合

original = [(1, 2, 3), (4, 5, 6), (7, 8, 9)]
result = list(map(list, zip(*original)))
print(result)
# 输出:[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

写法2:列表推导式+zip

original = [(1, 2, 3), (4, 5, 6), (7, 8, 9)]
result = [list(col) for col in zip(*original)]
print(result)
# 输出:[[1, 4, 7], [2, 5, 8], [3, 6, 9]]

原理说明

  • 首先用*original对原列表做解包操作,把列表内的三个元组拆成三个独立参数传入zip函数
  • zip函数会按位置索引匹配所有传入参数的元素,返回迭代器,每个元素是相同索引位置的元素组成的元组:(1,4,7)、(2,5,8)、(3,6,9)
  • 最后将每个元组转换为列表,再把整体转换为列表格式,就得到目标结果

注意事项

如果原列表中各元组的长度不一致,zip会自动以最短的元组长度为基准进行配对,超出的元素会被忽略。如果需要保留所有元素,可以改用itertools.zip_longest方法实现。

内容的提问来源于stack exchange,提问作者shinorz0721

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 03:18:03