推 hohiyan: 謝謝!我現在的進度到dictionary了,用dict做真的快很多 10/26 00:48
→ YONIQ: occur 不要在用 list 包,有搜尋需要的話用 dict, set 10/27 05:46
→ YONIQ: 搜尋 list 要遍歷元素直到找到 10/27 05:49
推 bigpigbigpig: occur() 可以改成: 10/27 06:26
→ bigpigbigpig: def occur(x, ft): return x in ft 10/27 06:26
推 bigpigbigpig: add() 可以改成: 10/27 06:50
→ bigpigbigpig: def add(x, ft): 10/27 08:07
→ bigpigbigpig: ft[ch] = ft.get(ch, 0) + 1 10/27 08:07
→ bigpigbigpig: return ft 10/27 08:07
→ bigpigbigpig: ft[x] = ft.get(x, 0) + 1 <== 前兩行改成這樣 10/27 08:08
→ yauhh: 沒關係,我不急,用list就好了 10/27 21:14
→ yauhh: 我很受不了有些人那種沒來由的著急,什麼都要最快 10/27 21:15
→ yauhh: 我實務上在dictionary中一用就在裡頭放了超過6000個物件, 10/28 08:27
→ yauhh: 寫 in list(ft) 只是求個字面上,反應我對這個物件的理解 10/28 08:28
→ yauhh: 使用上沒有多大的障礙。 10/28 08:28
而且, ft[x] 是 O(1) , keys(ft) 難道也是 O(1) 嗎? 我的判斷,要嘛要寫
x in keys(ft) 要嘛則寫 x in list(ft) ,有什麼不同?或者說是 in list(ft) 就O(n)
而 in set(ft) 則O(k), k < n ,有這樣的差別嗎?
至於取值的部分,我照樣用 ft[x] ,沒有所謂該用 list 或 dict 包不包的問題。
→ yauhh: 而bigpigbigpig,你的建議,我覺得最終只反映到程式會比較 10/28 08:29
→ yauhh: 短,但是我好好寫 if-else ,程度不同的同事可以看得懂, 10/28 08:30
→ yauhh: 這是好處。我既然沒有問題,就不必忙著來幫我解題。 10/28 08:30
※ 編輯: yauhh (118.168.161.23), 10/28/2014 08:36:49
※ 編輯: yauhh (118.168.161.23), 10/28/2014 08:39:42