1.6 是介紹 collections.defaultdict ,如果你希望預先指定 dict 裡元素的形態的話,就可以用這個。例如 d = defaultdict(list): d['a'].append('hello') ,d 裡的元素會預先宣告為 list ,後續就可以直接用,不需要額外作。
1.7 collections.OrderedDict 會保證裡面的順序跟你放進去的順序一致,比如你先放 d, c, b, a,那麼印出來時,就會是一樣的順序。如果是預設的 dict ,那就不一定了。
1.8 取 dict 裡的最大值跟最小值,作者一開始使用 zip() 來組,但因為 zip() 傳回的是 iterable,無法做第二次使用,所以作者建議直接用 dict.values()。要再額外取得 key 的話,就得用 min()/max() 的第二個參數,例如:min_value = prices[min(prices, key=lambda k: prices[k])] 。也可以繼續用 zip,但就不要二次運用 zip() 傳回的值: min(zip(prices.values(), prices.keys()))
1.9 取兩個 dict 的交集,這可以運用 keys() 來做,例如 new_dict = {key:a[key] for key in set(a.keys()) & set(b.keys())}
1.10 在保持原來元素的排序情況下移除 list 裡的重覆元素:作者自己寫了一個 dedupe() 函數來做,主要原理是利用 set 的特性。

arrow
arrow

    elleryq 發表在 痞客邦 留言(0) 人氣()