You need to enable JavaScript to run this app. Python无需numpy/groupby 提取子列表同位置元素生成新二维列表
优惠活动
大模型
产品
解决方案
定价
更多

Python无需numpy/groupby 提取子列表同位置元素生成新二维列表

实现方案

你要实现的是二维列表的转置操作,用Python内置函数即可一行完成,无需引入numpy等第三方库:

main_list = [[2,3,10],[5,8,1]]
# 写法1:列表推导式,可读性更高
new_list = [list(col) for col in zip(*main_list)]
# 写法2:配合map函数,更简洁
# new_list = list(map(list, zip(*main_list)))
print(new_list) # 输出 [[2,5],[3,8],[10,1]]

原理解释

  • *main_list 是解包操作,将二维列表的每一个子列表作为独立参数传入zip函数
  • zip函数会按索引位置依次取各个入参列表的元素,拼接成元组返回,刚好对应你要的「同位置元素组合」的需求
  • 外层的list()转换是将zip返回的元组转为列表类型,匹配你要求的子列表格式

不等长子列表适配

如果你的输入中各子列表长度不一致,zip会默认按最短的子列表长度截断。如果需要按最长子列表长度处理、空缺位置补默认值,可以使用itertools.zip_longest:

from itertools import zip_longest
main_list = [[2,3,10], [5]]
new_list = [list(col) for col in zip_longest(*main_list, fillvalue=0)]
print(new_list) # 输出 [[2,5], [3,0], [10,0]]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 00:00:02