一鍵對多個值,只支援兩種多值list和set,其它操作都類似
>>> from collections import defaultdict
>>> d = defaultdict(list)
>>> d
defaultdict(, )
>>> s = defaultdict(set)
>>> s['a'].add(1)
>>> s['a'].add(2)
>>> s['b'].add('ok')
>>> s['b'].add(3)
>>> s
defaultdict(, , 'b': })
>>> from collections import ordereddict
>>> d = ordereddict()
>>> d['a'] = 1
>>> d['b'] = 'ok'
>>> d['c'] = 3
>>> d['e'] = 4
>>> d
ordereddict([('a', 1), ('b', 'ok'), ('c', 3), ('e', 4)])
>>> d['b'] = 2
>>> d
ordereddict([('a', 1), ('b', 2), ('c', 3), ('e', 4)])
counter自動生成乙個統計字典:
字典key為被統計元素,字典value為統計數量;
most_common(n)函式可以統計出最多的前n項;
counter 生成的字典支援加減運算。
>>> from collections import counter
>>> words = [
... 'look', 'into', 'my', 'eyes', 'look', 'into', 'my', 'eyes',
... 'the', 'eyes', 'the', 'eyes', 'the', 'eyes', 'not', 'around', 'the',
... 'eyes', "don't", 'look', 'around', 'the', 'eyes', 'look', 'into',
... 'my', 'eyes', "you're", 'under'
... ]
>>> word_counts = counter(words)
>>> top_three = word_counts.most_common(3)
>>> top_three
[('eyes', 8), ('the', 5), ('look', 4)]
>>> word_counts['not']
1>>> morewords = ['why','are','you','not','looking','in','my','eyes']
>>> b = counter(morewords)
>>> word_counts-b
counter()
序列的操作 cookbook讀書筆記
如果序列上的值都是hashable 型別,那麼可以很簡單的利用集合或者生成器來解決這個問題。如果你想消除元素不可雜湊 比如dict 型別 的序列中重複元素的話,將序列元素轉換成hashable 型別進行比較即可。def dedupe items,key none seen set for item ...
檔案目錄操作 cookbook讀書筆記
使用os.path 模組中的函式來完成多數操作 使用os.path 來進行檔案測試是很簡單的。在寫這些指令碼時,可能唯一需要注意的就是你需要考慮檔案許可權的問題,特別是在獲取元資料時候 import os path users beazley data data.csv get the last c...
類與物件 cookbook讀書筆記
重新定義它的 str 和 repr 方法,使用str 或print 函式會輸出 str 字串 更適合人閱讀的字串 repr 函式返回 repr 字串 更適合機器閱讀 repr 生成的文字字串標準做法是需要讓eval repr x x 為真。如果實在不能這樣子做,應該建立乙個有用的文字表示,並使用 和...