Re: [問題] 去除列表的重複

作者: TuCH (謬客)   2019-12-17 11:40:06
: 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 會差個兩三倍左右 不知道是不是內建的有什麼加速機制
作者: eric781101   2019-12-17 14:58:00
built-in modules are written in C. 一定會比自己寫的快
作者: thefattiger (LT)   2019-12-18 01:32:00
寫Python這種高階語言還要自己刻的話不如去寫C

Links booklink

Contact Us: admin [ a t ] ucptt.com