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

如何遍历任意大小二维数组的列并将其转换为独立列表

二维数组垂直遍历提取独立列的高效实现

纯Python环境下优先使用内置zip函数实现,该函数底层为C实现,执行效率远高于手动编写Python层循环,适配所有规则二维数组(每行长度一致):

# 示例输入
array = [[2, 1, 4],
         [1, 3, 7],
         [7, 1, 4]]

# 提取所有列,结果为元组组成的列表
columns = list(zip(*array))
# 如果需要每列都是列表格式,调整为
columns = [list(col) for col in zip(*array)]

执行后columns[0]对应[2, 1, 7]、columns[1]对应[1, 3, 1]、columns[2]对应[4, 7, 4],直接按索引取对应列即可。

特殊场景适配

  • 若使用不规则二维数组(每行长度不同),可以用itertools.zip_longest按最长行补全提取:
from itertools import zip_longest
# fillvalue参数指定空缺位置的填充值
columns = [list(col) for col in zip_longest(*array, fillvalue=None)]
  • 若处理大规模数值类二维数组,使用numpy转置的性能最优:
import numpy as np
np_arr = np.array(array)
columns = np_arr.T.tolist()

效率对比

  • 1000行以内的小规模数组:纯Python zip 方案综合效率最高,无额外依赖加载开销
  • 万行以上的大规模数值数组:numpy方案性能比纯Python实现高10~100倍

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:54:05