Python中的 defaultdict 函數


導入

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM