首先有兩個列表
將列表合併後去除重複
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:00countDict = list(item for item in l1 if l1.count(item)
[l1.remove(x) for x in l1]ans = set(l2) - set(l1)
作者: 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:00set() ^ set()
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:00set 做 XOR 就好了 一行結束 就是我上一個推文推的pandas用在這太大材小用了
作者:
omd (哈寶寶)
2019-12-15 18:36:00列表不合併,直接轉set,然後照Sunal大方法
作者:
ddavid (謊言接線生)
2019-12-15 22:47:00set XOR不符原Po需求,因為合併後重複包括a裡面直接就出現兩次以上的這種,set XOR只會刪掉兩邊都出現的
作者:
crazycy (LCY)
2019-12-15 23:30:00都轉成Set了 裡面怎麼會有重複的...
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]