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

Python列表提取仅出现一次元素:移除所有重复项的技术需求

解决Python列表中提取仅出现一次元素的问题

嘿,我完全懂你的需求——你要的不是普通的“去重”(集合做的就是这个,会留下重复元素的单个副本),而是彻底移除所有重复出现过的元素,只保留那些从头到尾只出现过一次的项。针对你的例子lis = ['a','l','f','a'],要得到lis2 = ['l','f'],咱们有几种实用的方法:

方法一:列表推导式 + count(简单直观)

这种方法适合小列表,代码写起来很直接:

lis = ['a','l','f','a']
lis2 = [item for item in lis if lis.count(item) == 1]
print(lis2)  # 输出: ['l', 'f']

原理很简单:遍历原列表的每个元素,检查它在列表中出现的总次数是否为1,符合条件就保留下来。不过要注意,count()每次都会遍历整个列表,所以如果你的列表非常大,这种方法的效率会有点低。

方法二:使用collections.Counter(高效推荐)

如果处理的是大列表,用Counter统计次数会高效很多,它只需要遍历一次列表就能完成所有元素的计数:

from collections import Counter

lis = ['a','l','f','a']
item_counts = Counter(lis)
lis2 = [item for item in lis if item_counts[item] == 1]
print(lis2)  # 输出: ['l', 'f']

这里Counter先把所有元素的出现次数统计好,之后我们只需要再遍历一次原列表,筛选出次数为1的元素即可,整体效率比第一种方法高不少。

两种方法都能保持元素在原列表中的出现顺序,完美匹配你的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 17:47:40