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

看板Python作者 (謬客)時間4年前 (2019/12/17 11:40), 編輯推噓1(102)
留言3則, 2人參與, 4年前最新討論串5/5 (看更多)
: 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://www.ptt.cc/bbs/Python/M.1576554008.A.EE4.html

12/17 14:58, 4年前 , 1F
built-in modules are written in C. 一定會比自己寫
12/17 14:58, 1F

12/17 14:58, 4年前 , 2F
的快
12/17 14:58, 2F

12/18 01:32, 4年前 , 3F
寫Python這種高階語言還要自己刻的話不如去寫C
12/18 01:32, 3F
文章代碼(AID): #1T-4uOxa (Python)
文章代碼(AID): #1T-4uOxa (Python)