python中defaultdict的用法詳解
初識(shí)defaultdict
之前在使用字典的時(shí)候, 用的比較隨意, 只是簡(jiǎn)單的使用dict.
然而這樣在使用不存在的key的時(shí)候發(fā)生KeyError這樣的一個(gè)報(bào)錯(cuò), 這時(shí)候就該defaultdict登場(chǎng)了.
如何使用defaultdict
可以這樣
from collections import defaultdict d1 = defaultdict(int)
或者這樣
import collections d1 = collections.defaultdict(int)
defaultdict與dict實(shí)例化字典類型的區(qū)別
使用defaultdict任何未定義的key都會(huì)默認(rèn)返回一個(gè)根據(jù)method_factory參數(shù)不同的默認(rèn)值, 而相同情況下dict()會(huì)返回KeyError.
比較下面代碼:
d1 = dict() d2 = defaultdict(list) print(d1['a']) print(d2['a'])
defaultdict的構(gòu)造
python官方文檔中對(duì)defaultdict的定義如下:
class collections.defaultdict([default_factory[, ...]])
python官方文檔中對(duì)defaultdict的解釋如下:
defaultdic dict subclass that calls a factory function to supply missing values
default_factory 接收一個(gè)工廠函數(shù)作為參數(shù), 例如int str list set等.
defaultdict在dict的基礎(chǔ)上添加了一個(gè)missing(key)方法, 在調(diào)用一個(gè)不存的key的時(shí)候, defaultdict會(huì)調(diào)用__missing__, 返回一個(gè)根據(jù)default_factory參數(shù)的默認(rèn)值, 所以不會(huì)返回Keyerror.
Example
Example 1
s = 'mississippi' d = defaultdict(int) for k in s: d[k] += 1 print(d)
Example 2
s = [('red', 1), ('blue', 2), ('red', 3), ('blue', 4), ('red', 1), ('blue', 4)] d = defaultdict(set) for k, v in s: d[k].add(v) print(d)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python Pygame實(shí)戰(zhàn)之賽車游戲的實(shí)現(xiàn)
如今的游戲可謂是層出不窮,不過小編發(fā)現(xiàn),賽車游戲也是深受大家歡迎啊,像跑跑卡丁車、QQ飛車,還有主機(jī)游戲極品飛車系列。本文將用Python中的Pygame模塊制作一個(gè)簡(jiǎn)單的賽車游戲,感興趣的可以了解一下2022-03-03關(guān)于Python dict存中文字符dumps()的問題
這篇文章主要介紹了關(guān)于Python dict存中文字符dumps()的問題,本文給大家分享問題及解決方案,給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10Python2.x利用commands模塊執(zhí)行Linux shell命令
這篇文章主要介紹了Python2.x利用commands模塊執(zhí)行Linux shell命令 的相關(guān)資料,需要的朋友可以參考下2016-03-03pandas 時(shí)間偏移的實(shí)現(xiàn)
時(shí)間偏移就是在指定時(shí)間往前推或者往后推一段時(shí)間,即加減一段時(shí)間之后的時(shí)間,本文使用Python實(shí)現(xiàn),感興趣的可以了解一下2021-08-08使用django-guardian實(shí)現(xiàn)django-admin的行級(jí)權(quán)限控制的方法
這篇文章主要介紹了使用django-guardian實(shí)現(xiàn)django-admin的行級(jí)權(quán)限控制的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-10-10利用Python?爬取股票實(shí)時(shí)數(shù)據(jù)詳情
這篇文章主要介紹了利用Python?爬取股票實(shí)時(shí)數(shù)據(jù)詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-08-08用python實(shí)現(xiàn)一幅春聯(lián)實(shí)例代碼
大家好,本篇文章主要講的是用python實(shí)現(xiàn)一幅春聯(lián)實(shí)例代碼,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下2022-01-01