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

如何在Python嵌套列表中简便查找最小值?

在Python嵌套列表中查找最小值的简洁实现方法

嘿,这个需求很常见,我给你分享几个简单高效的实现方式,针对你给出的两层嵌套列表场景完全适用:

方法1:生成器表达式配合min()函数

这是最简洁直观的写法,一行代码就能搞定:

ls = [[2,3,5],[8,1,10]]
min_val = min(num for sublist in ls for num in sublist)
print(min_val)  # 输出:1

原理很简单:生成器表达式会遍历外层列表的每个子列表,再逐个取出子列表里的元素,直接把所有元素的迭代器传给min()函数,不需要额外创建完整的扁平列表,内存效率很高。

方法2:用itertools.chain展平列表

如果你喜欢用标准库工具,itertools.chain是个不错的选择:

from itertools import chain

ls = [[2,3,5],[8,1,10]]
min_val = min(chain.from_iterable(ls))
print(min_val)  # 输出:1

chain.from_iterable()会把嵌套的子列表逐个“展开”成一个连续的迭代器,min()函数直接处理这个迭代器就能得到全局最小值,和生成器的效率差不多,代码也很简洁。

方法3:手动遍历(适合理解逻辑)

如果想自己实现遍历逻辑,也可以这么写,虽然代码长一点,但逻辑清晰,适合初学者理解:

ls = [[2,3,5],[8,1,10]]
min_val = float('inf')  # 初始化为无穷大,确保第一个子列表的最小值能替换它

for sublist in ls:
    sub_min = min(sublist)
    if sub_min < min_val:
        min_val = sub_min

print(min_val)  # 输出:1

这里先把全局最小值初始成无穷大,然后逐个计算每个子列表的最小值,再和当前全局最小值比较更新,最终得到结果。

小提示

如果你的嵌套列表有更深的层级(比如三层甚至更多),上面的方法就不适用了,这时候需要写递归函数来遍历所有元素,但针对你给出的两层嵌套场景,上面的三个方法完全足够啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:38:25