[问题] 去除列表的重复

楼主: s4028600 (佑)   2019-12-12 20:28:45
首先有两个列表
将列表合并后去除重复
l1 = ['b','c','d','b','c','a','a']
l2 = list(set(l1))
print (l2)
打印
['b', 'c', 'a', 'd']
但是我想要去除重复
想要打印结果是这样
['d']
只取没有重复的
有方法吗
作者: froce (froce)   2019-12-12 20:34:00
countDict = list(item for item in l1 if l1.count(item)
楼主: s4028600 (佑)   2019-12-12 22:25:00
原来如此 利用出现过几次来做条件吗...
作者: CaptPlanet (ep)   2019-12-12 23:20:00
[l1.remove(x) for x in l1]ans = set(l2) - set(l1)
作者: cuteSquirrel (松鼠)   2019-12-13 00:42:00
用字典或list.count(), 透过出现次数去筛选https://bit.ly/2rvM60B
作者: eric781101   2019-12-13 15:27:00
iterate一遍丢进set, set.remove(e) if e in set elseset.add(e)
作者: Sunal (SSSSSSSSSSSSSSSSSSSSSSS)   2019-12-13 20:26:00
set() ^ set()
作者: gene50814 (genechen)   2019-12-14 05:13:00
a = pd.Series(l1)b = list(a[a.duplicated])[i for i in l1 if i not in b]更正 duplicated()
作者: Sunal (SSSSSSSSSSSSSSSSSSSSSSS)   2019-12-14 10:01:00
set 做 XOR 就好了 一行结束 就是我上一个推文推的pandas用在这太大材小用了
作者: omd (哈宝宝)   2019-12-15 18:36:00
列表不合并,直接转set,然后照Sunal大方法
作者: ddavid (谎言接线生)   2019-12-15 22:47:00
set XOR不符原Po需求,因为合并后重复包括a里面直接就出现两次以上的这种,set XOR只会删掉两边都出现的
作者: crazycy (LCY)   2019-12-15 23:30:00
都转成Set了 里面怎么会有重复的...
作者: pingxx123 (皮)   2019-12-16 13:11:00
from collections import Counterl2 = Counter(l1)result = [key for key,value in c.items() if value == 1]最后一行是这个才对result = [key for key,value in l2.items() if value== 1]
作者: ddavid (谎言接线生)   2019-12-16 23:54:00
@crazycy 你仔细看一下原题
作者: crazycy (LCY)   2019-12-17 08:58:00
抱歉 没注意到
作者: carrlyea   2019-12-17 11:32:00
l2 = [x for x in l1 if l1.count(x)==1]
作者: TuCH (谬客)   2019-12-17 12:05:00
楼上要改成 l2 = [x for x in set(l1) if l1.count(x)==1]

Links booklink

Contact Us: admin [ a t ] ucptt.com