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

Python中根据另一个列表取列表最大值遇TypeError问题咨询

问题分析与解决

错误原因

你写的max(Cb[0][res2[i]])是在给max()传单个整数——比如第一次循环时,res2[i]是3,Cb[0][3]就是30,这是个单独的int值。但max()函数必须接收可迭代对象(比如列表、生成器),直接传单个整数就会触发TypeError: 'int' object is not iterable错误。

修正代码

你的需求是取Cb[0]中res2指定索引对应的所有元素的最大值,直接把这些元素收集起来再求max就行,不用循环逐个处理:

res2 = [3, 4, 6]
Cb = [[0,10,20,30,40,50,60]]

# 收集目标元素后求最大值
max_val = max(Cb[0][idx] for idx in res2)
print(max_val)

运行这段代码会输出:

60

另一种更直观的写法

如果想先明确看到收集的元素,也可以用列表推导式:

res2 = [3, 4, 6]
Cb = [[0,10,20,30,40,50,60]]

target_elements = [Cb[0][idx] for idx in res2]  # 得到[30,40,60]
max_val = max(target_elements)
print(max_val)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 01:42:40