詳解Python 中的 defaultdict 數(shù)據(jù)類型
這篇文章給大家介紹Python 中的 defaultdict 數(shù)據(jù)類型,具體內(nèi)容如下所示:
首先,defaultdict
是 dict
的一個子類。通常 Python 中字典(dict)這種數(shù)據(jù)類型是通過鍵值對來存取的,當(dāng)索引一個不存在的鍵時,就會引發(fā) keyerror
異常。那么,defaultdict
就可以解決這個問題,它可以實現(xiàn)為不存的鍵值返回一個默認(rèn)值。
defaultdict
是 collections
包下的一個模塊,defaultdict
在初始化時可以提供一個 default_factory 的參數(shù),default_factory 接收一個工廠函數(shù)作為參數(shù), 可以是 int、str、list 等內(nèi)置函數(shù),也可以是自定義函數(shù)。
用法實例如下:
示例一: 統(tǒng)計字符串中字母出現(xiàn)的個數(shù)。
from collections import defaultdict s = 'mississippi' d = defaultdict(int) for k in s: d[k] += 1 print(d) # 輸出 # defaultdict(<class 'int'>, {'m': 1, 'i': 4, 's': 4, 'p': 2})
如果不用 defaultdict 的話,寫法如下:
s = 'mississippi' d = {} for k in s: if k not in d: d[k] = 1 else: d[k] = d[k] + 1 print(d) # 輸出 # {'m': 1, 'i': 4, 's': 4, 'p': 2}
s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)] d = defaultdict(list) for k, v in s: d[k].append(v) print(d) # 輸出 # defaultdict(<class 'list'>, {'yellow': [1, 3], 'blue': [2, 4], 'red': [1]})
示例二: 使用 lambda 函數(shù)。
q = defaultdict(lambda: [0, 0, 0]) print(q['a']) # 輸出 # [0, 0, 0]
到此這篇關(guān)于Python 中的 defaultdict 數(shù)據(jù)類型的文章就介紹到這了,更多相關(guān)Python defaultdict 數(shù)據(jù)類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
如何利用pandas將Excel轉(zhuǎn)為html格式
工作中經(jīng)常會遇到Excel轉(zhuǎn)為html格式這種需求,下面這篇文章主要給大家介紹了關(guān)于如何利用pandas將Excel轉(zhuǎn)為html格式的相關(guān)資料,主要利用的是pd.to_html,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-08-08numpy展平數(shù)組ndarray.flatten()詳解
這篇文章主要介紹了numpy展平數(shù)組ndarray.flatten()詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06Python tkinter實現(xiàn)的圖片移動碰撞動畫效果【附源碼下載】
這篇文章主要介紹了Python tkinter實現(xiàn)的圖片移動碰撞動畫效果,涉及Python tkinter模塊操作圖片基于坐標(biāo)動態(tài)變換與數(shù)值判定實現(xiàn)移動、碰撞檢測等相關(guān)操作技巧,需要的朋友可以參考下2018-01-01詳解Python設(shè)計模式編程中觀察者模式與策略模式的運用
這篇文章主要介紹了Python設(shè)計模式編程中觀察者模式與策略模式的運用,觀察者模式和策略模式都可以歸類為結(jié)構(gòu)型的設(shè)計模式,需要的朋友可以參考下2016-03-03讀取json格式為DataFrame(可轉(zhuǎn)為.csv)的實例講解
今天小編就為大家分享一篇讀取json格式為DataFrame(可轉(zhuǎn)為.csv)的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06如何基于opencv實現(xiàn)簡單的數(shù)字識別
現(xiàn)在很多場景需要使用的數(shù)字識別,比如銀行卡識別,以及車牌識別等,在AI領(lǐng)域有很多圖像識別算法,大多是居于opencv 或者谷歌開源的tesseract 識別,下面這篇文章主要給大家介紹了關(guān)于如何基于opencv實現(xiàn)簡單的數(shù)字識別,需要的朋友可以參考下2021-09-09Python使用requests模塊發(fā)送http請求的方法介紹
Python?Requests是一個?HTTP?庫,它允許我們向?Web?服務(wù)器發(fā)送??HTTP?請求,并獲取響應(yīng)結(jié)果,本文將會詳細(xì)介紹Python?requests模塊如何發(fā)送http請求,文中有相關(guān)的代碼示例,需要的朋友可以參考下2023-06-06