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

Python count()方法统计列表唯一元素结果错误问题排查

问题说明
  • 待实现功能:接收整数列表输入,按元素在原列表中的顺序,输出所有仅出现一次的元素。
  • 故障表现:现有代码运行异常,会将两位数、三位数的每一位识别为独立的单个数字做统计,无法输出正确结果。

原错误实现代码:

x = []
a = input()
a.split(" ")
for i in a:
    if a.count(i) == 1:
        x.append(i)
print(x)
错误原因

代码有两个核心问题:

  1. 字符串的split(" ")方法不会修改原始字符串,执行后会返回分割生成的新列表,原代码没有接收这个返回值,变量a始终是用户输入的完整字符串。此时遍历a等价于遍历字符串的每一个字符,自然会把多位数拆成单个数字处理。
  2. 原代码直接对原始输入字符串调用count()方法,统计的是单个字符在整个输入串里的出现次数,统计逻辑完全不符合需求。
修正代码

推荐用collections.Counter做频次统计,时间效率更高,实现如下:

from collections import Counter

# 读取输入,按空格分割后转为整数列表
num_list = list(map(int, input().split()))
# 统计每个整数的出现次数
freq = Counter(num_list)
# 按原顺序筛选仅出现一次的元素
result = [num for num in num_list if freq[num] == 1]
print(result)

如果不想引入额外模块,也可以手动实现频次统计:

num_list = list(map(int, input().split()))
freq = {}
for num in num_list:
    freq[num] = freq.get(num, 0) + 1
result = [num for num in num_list if freq[num] == 1]
print(result)

内容的提问来源于stack exchange,提问作者Анатолий Коцюба

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 23:57:21