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

Python整数列表重复检测程序出现AttributeError错误求助

问题分析与修复

错误原因

  1. 输入未存入列表:你定义了空列表emp,但循环获取输入时,没有把每个输入的整数e添加到emp列表中,导致后续无法对列表进行重复检测。
  2. 错误操作整数而非列表:检测逻辑里的e是最后一个输入的整数,不是列表。int类型没有count()方法,所以调用e.count(item)会触发AttributeError;同时range(e)也是错误的,你应该遍历目标列表,而非最后一个元素的数值范围。
  3. 检测逻辑混乱:原代码既未定义item变量,也没有正确遍历列表元素进行重复判断,逻辑完全不成立。

修正后的完整代码

emp = [] 
listLen = int(input("Enter list length: "))
num = 1

# 获取输入并存入列表
for i in range(listLen):
    e = int(input("Enter element %d: " % num))
    emp.append(e)  # 关键步骤:将输入元素添加到列表中
    num += 1

# 高效检测重复:利用集合自动去重的特性
if len(emp) != len(set(emp)):
    print("Has duplicate?: True")
else:
    print("Has duplicate?: False")

代码说明

  • 输入存储:添加emp.append(e)把每个输入的整数存入列表,确保后续能对完整列表进行操作。
  • 重复检测:
    • 集合(set)会自动剔除重复元素,通过对比原列表和集合的长度,就能快速判断是否存在重复:长度不等则有重复,反之则无。
    • 如果你偏好遍历统计的方式,也可以用以下代码:
      has_duplicate = False
      for item in emp:
          if emp.count(item) > 1:
              has_duplicate = True
              break
      print("Has duplicate?:", has_duplicate)
      
      注意:这种遍历统计的方法时间复杂度更高,列表元素较多时,集合方法的效率优势更明显。

示例运行

Enter list length: 3
Enter element 1: 100
Enter element 2: 2312
Enter element 3: 12312312
Has duplicate?: False
Enter list length: 4
Enter element 1: 5
Enter element 2: 3
Enter element 3: 5
Enter element 4: 7
Has duplicate?: True

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 06:01:44