: l1 = ['b','c','d','b','c','a','a']
: s1 = set(l1)
: temp =set()
: while len(l1) > 1:
: temp.add(l1.pop())
: s1 = s1 & (temp ^ set(l1))
: print(list(s1))
: 非资工出身python初学者
: 借用这题来发问,要怎么计算code效率?
: 例如上面解法大于O(n)?
参考 pingxx123 大大的解法
"""
参考Counter的算法
l2 = dict()
for i in l1:
l2[i] = l2.get(i, 0) + 1
"""
上面三行等于
from collections import Counter
l2 = Counter(l1)
result = [key for key, value in l2.items() if value == 1]
不过自己刻算出来跟Counter 会差个两三倍左右 不知道是不是内建的有什么加速机制