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

迭代传入函数的列表时出现'int' object is not iterable错误求助

解决'int' object is not iterable错误及实现不重复数字求和

核心错误原因

你代码里的unique+=i和multiple+=i是问题根源:+=操作符给列表添加元素时,要求右侧是可迭代对象(比如列表、元组),但i是单个整数,不是可迭代的,所以抛出'int' object is not iterable错误。应该改用list.append(i)来添加单个元素。

其他需要修正的问题

  • 函数名用了sum,这是Python内置函数,会覆盖其原有功能,建议重命名为sum_unique这类不冲突的名字。
  • 变量名list是Python内置类型,不要用它做变量名,换成num_list更合适。

修正后的代码

def sum_unique(input_list):
    unique = []
    total = 0
    multiple = []
    for i in input_list:
        found = False
        inMultiple = False
        inUnique = False
        for j in multiple:
            if i == j:
                found = True
                inMultiple = True
        for j in unique:
            if i == j:
                found = True
                inUnique = True
        if not found:
            unique.append(i)
        else:
            if inUnique:
                unique.remove(i)
                if not inMultiple:
                    multiple.append(i)
    for num in unique:
        total += num
    return total

num_list = [1,1,2,3]
print(sum_unique(num_list))  # 输出5(2+3)

更简洁的实现方式

你的需求是对只出现一次的数字求和,其实可以用字典计数简化,不用嵌套循环:

def sum_unique(num_list):
    count = {}
    for num in num_list:
        count[num] = count.get(num, 0) + 1
    # 只累加出现次数为1的数字
    return sum(num for num, cnt in count.items() if cnt == 1)

num_list = [1,1,2,3]
print(sum_unique(num_list))  # 输出5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 10:52:42