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

Leetcode最富有客户资产问题:代码报错‘int’ object is not iterable原因解析

原代码报错原因与列表推导式版本正常运行的解析

原代码的错误根源

你编写的原代码中,虽然一开始将res初始化为空列表[],但循环逻辑存在致命问题:

class Solution:
    def maximumWealth(self, accounts: list[list[int]]) -> int:
        res = []
        for wealth in accounts:
            res = (sum(wealth))  # 这里是错误核心
        return max(res)

循环里每次都把res直接赋值为sum(wealth)的整数结果,而非将该整数添加到列表中。循环执行完毕后,res不再是列表,而是最后一个客户的财富值(一个int类型的单个数值)。

而Python的max()函数必须接收可迭代对象(比如列表、元组这类包含多个元素的容器),当你传入单个整数时,就会触发如下错误:

TypeError: 'int' object is not iterable
    return max(res)
Line 6 in maximumWealth (Solution.py)
    ret = Solution().maximumWealth(param_1)
Line 25 in _driver (Solution.py)
    _driver()
Line 36 in <module> (Solution.py)

如果要修复原代码,只需将循环内的赋值语句改为列表追加操作:res.append(sum(wealth)),这样res会始终保持列表类型,最终max(res)就能正常找出所有客户财富的最大值。

列表推导式版本的正确逻辑

列表推导式版本的代码逻辑清晰且正确:

class Solution:
    def maximumWealth(self, accounts: list[list[int]]) -> int:
        accounts = [sum(wealth) for wealth in accounts]
        return max(accounts)

[sum(wealth) for wealth in accounts]会直接生成一个新列表,其中每个元素对应一位客户的财富总和。此时accounts是一个包含多个整数的可迭代对象,max(accounts)可以正常遍历这个列表并返回最大值,因此代码能正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 20:01:14