作者TuCH (谬客)
看板Python
标题Re: [问题] 去除列表的重复
时间Tue Dec 17 11:40:06 2019
: 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 会差个两三倍左右 不知道是不是内建的有什麽加速机制
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 125.227.65.79 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1576554008.A.EE4.html
1F:推 eric781101: built-in modules are written in C. 一定会比自己写 12/17 14:58
2F:→ eric781101: 的快 12/17 14:58
3F:→ thefattiger: 写Python这种高阶语言还要自己刻的话不如去写C 12/18 01:32