首先有两个列表
将列表合并后去除重复
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]