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

Python如何统计列表中仅出现一次的非重复元素数量

Python统计列表中仅出现一次的元素总数

基于你已经在用的Counter,可以用非常简洁的生成器表达式实现需求,完全符合Python编码风格:

from collections import Counter

words = ['a', 'b', 'c', 'a']
# 遍历计数结果,统计出现次数恰好为1的元素个数
non_repeat_count = sum(1 for count in Counter(words).values() if count == 1)
print(non_repeat_count)

执行后输出结果就是你期望的2。


如果不想使用Counter,也可以直接通过列表方法实现:

words = ['a', 'b', 'c', 'a']
non_repeat_count = sum(1 for item in words if words.count(item) == 1)
print(non_repeat_count)

性能提示:这种写法的时间复杂度为O(n²),仅适合短列表使用;Counter底层基于哈希表实现统计,时间复杂度为O(n),处理大长度列表时性能优势非常明显,优先推荐使用。

如果你还需要同时获取所有仅出现一次的元素本身,可以直接筛选键值对:

from collections import Counter

words = ['a', 'b', 'c', 'a']
non_repeat_items = [item for item, cnt in Counter(words).items() if cnt == 1]
# 此时non_repeat_items的值为['b', 'c'],取长度即可得到统计值2
print(len(non_repeat_items))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 17:27:27