如何在Python中从列表提取仅出现一次的元素?
找出列表中仅出现一次的元素
给定列表:
list1 = [1, 1, 2, 3, 3]
需要输出其中仅出现一次的数字2。目前使用的去重代码:
lt = [1,1,2,3,3] new_lt = [] for i in lt: if i not in new_lt: new_lt.append(i) print(new_lt)
输出结果为:
[1, 2, 3]
该结果无法满足需求,以下是几种实现精确输出仅出现一次元素的Python代码方案:
- 方法一:利用列表
count()方法遍历判断
lt = [1, 1, 2, 3, 3] for num in lt: if lt.count(num) == 1: print(num) # 输出2
直接遍历每个元素,统计其在列表中的出现次数,等于1时输出目标元素,适合小规模列表场景。
- 方法二:用
collections.Counter统计频次(高效方案)
from collections import Counter lt = [1, 1, 2, 3, 3] counts = Counter(lt) for num, cnt in counts.items(): if cnt == 1: print(num) # 输出2
Counter会一次性统计所有元素的出现频次,遍历结果筛选出频次为1的元素,处理大列表时效率优于count()方法。
- 方法三:手动通过字典统计频次
lt = [1, 1, 2, 3, 3] freq = {} for num in lt: freq[num] = freq.get(num, 0) + 1 for num, cnt in freq.items(): if cnt == 1: print(num) # 输出2
通过字典手动记录每个元素的出现次数,再筛选目标元素,逻辑清晰,无需导入额外模块。
内容的提问来源于stack exchange,提问作者Jasmi VInay
相关产品推荐
相关产品推荐

