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

如何用NumPy按对应索引查找列表的列表中的最大值

嘿,这个需求其实挺常见的,刚好有几种高效的实现方式,我给你拆解下:

方法一:用NumPy(最简洁高效)

如果你平时经常和数值数据打交道,NumPy绝对是最优解——它底层用C实现,批量运算速度比纯Python快一大截,处理你说的100个子列表×20元素的规模完全小菜一碟。

核心思路是把嵌套列表转成NumPy数组,然后沿着**行方向(axis=0)**取每个列位置的最大值,最后转成普通列表就行:

import numpy as np

original_list = [[1,2,3,4,5,6],[3,2,1,4,5,6],[4,3,2,1,5,6],[1,1,1,1,1,1]]
arr = np.array(original_list)
max_list = arr.max(axis=0).tolist()  # 也可以用 np.amax(arr, axis=0).tolist()
print(max_list)  # 输出: [4,3,3,4,5,6]
方法二:纯Python风格的高效方案

要是不想引入第三方库,用Python内置的zip()和max()组合就能写出非常优雅且高效的代码,完全符合Pythonic的风格。

zip(*original_list)会把原嵌套列表“转置”,把每个索引位置的元素打包成元组(比如第一个元组是(1,3,4,1),对应原列表每个子列表的第一个元素),然后用列表推导式对每个元组取最大值:

original_list = [[1,2,3,4,5,6],[3,2,1,4,5,6],[4,3,2,1,5,6],[1,1,1,1,1,1]]
max_list = [max(col) for col in zip(*original_list)]
print(max_list)  # 输出: [4,3,3,4,5,6]

这种写法简洁易读,而且对于你描述的数据规模,运行速度完全够用,不需要额外依赖。

两种方法都能完美匹配你的需求,选哪种就看你有没有使用NumPy的场景啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:59:06