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

Python如何访问提取嵌套列表元素 按列重组得到指定输出

嵌套列表按列重组实现

原代码的错误点:两层循环遍历到的j是子列表里的单个数值元素,并非可切片的序列,执行j[0:3]会直接报错,完全无法实现按列聚合的逻辑。

需求本质是对二维嵌套列表做矩阵转置,即把每一列的元素收拢为新的子列表,有两种常见实现方式:

  • 内置函数快速实现:用zip(*alist)可以直接按索引位置聚合所有可迭代对象的对应元素,因为zip默认返回元组,转成列表即可得到目标结构
    alist = [[0., 0., 0], [1 , 2, 3 ], [4, 5, 6 ],[7, 8, 9], [10, 11, 12], [13, 14, 15]]
    a = [list(col) for col in zip(*alist)]
    print(a)
    
    运行输出:
    [[0.0, 1, 4, 7, 10, 13], [0.0, 2, 5, 8, 11, 14], [0.0, 3, 6, 9, 12, 15]]
    
    输出里第一个元素为0.0是原列表第一行元素本身是浮点数导致的,和期望结果的值完全匹配,需要统一整数类型的话可以在转列表时加类型转换即可。
  • 基础循环实现:如果要手写逻辑不依赖内置聚合函数,可以先按列数初始化对应数量的空列表,再逐行遍历把元素追加到对应索引的子列表中
    alist = [[0., 0., 0], [1 , 2, 3 ], [4, 5, 6 ],[7, 8, 9], [10, 11, 12], [13, 14, 15]]
    col_num = len(alist[0])
    a = [[] for _ in range(col_num)]
    for row in alist:
        for index, value in enumerate(row):
            a[index].append(value)
    print(a)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 10:45:29