導入
from collections import defaultdict
defaultdict
用於產生一個帶有默認值的dict。主要針對key不存在的情況下,也希望有返回值的情況。
>>> a = dict() >>> a['k1'] = 1 >>> a {'k1': 1} >>> a['k2'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'k2' >>>
對於普通的dict,key不存在就報錯。
但是對於defaultdict,key不存在就會返回默認值。
那么默認值如何設定?通過給 defaultdict() 方法傳參,傳入的是一個函數(或叫做方法),當key不存在時,返回的就是這個函數的默認返回值。
>>> a = defaultdict(int) >>> a defaultdict(<class 'int'>, {}) >>> a['k2'] 0 >>>
此時就不會報錯。而且返回值是0。
我們還發現了,int() 這個內置函數的默認值是0。看這個示例:
>>> print(int()) 0
這里的函數可以是任意自定義函數,只要有 default 的return即可。
>>> from collections import defaultdict >>> def fun(): return 666 ... >>> fun() 666 >>> a = defaultdict(fun) >>> a defaultdict(<function fun at 0x10a8185f0>, {}) >>> a['nonexist_key'] 666 >>>
參考鏈接:
https://blog.csdn.net/edogawachia/article/details/104826952
collections.deque
作用: list-like container with fast appends and pops on either end (兩邊都可以 append 和 pop)
參考鏈接:
https://docs.python.org/3.6/library/collections.html?highlight=collections#module-collections