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

如何提取并打印嵌套列表内部所有子列表中的最大数值

问题原因

  • 你调用max(list)时是直接对存储子列表的外层列表取最大值,Python中列表间的大小比较规则为依次对比同位置元素,因此会返回首个元素最大的子列表对象[1231, 52, 22],而非所有元素的最大值
  • 你把max()调用放在了双层循环内部,总循环次数为所有子列表的元素总数(示例中是3+1+3=7次),因此会重复打印7次同样的子列表结果
  • 额外提示:不建议用list作为变量名,会覆盖Python内置的list类型,可能引发后续逻辑异常

修复方案1:修改原有循环逻辑

my_list = [ [1,3,251], [2], [1231,52,22] ]
# 如果存在负数场景,可以把初始值设为float('-inf')
max_num = 0
for sub_list in my_list:
    for num in sub_list:
        if num > max_num:
            max_num = num
print(max_num)

运行输出结果为1231,符合预期。


修复方案2:更简洁的写法(无需手动维护最大值变量)

方法A:展开嵌套列表后直接取最大值

my_list = [ [1,3,251], [2], [1231,52,22] ]
max_num = max(num for sub_list in my_list for num in sub_list)
print(max_num)

方法B:先取每个子列表的最大值,再取总最大值

my_list = [ [1,3,251], [2], [1231,52,22] ]
max_num = max(max(sub_list) for sub_list in my_list)
print(max_num)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:06:07