[問題] 去除列表的重複

作者: 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