欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python?defaultdict教程示例詳解

 更新時間:2023年01月11日 15:15:05   作者:YunfengWang  
這篇文章主要為大家介紹了Python?defaultdict教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

1. 概述

在我們使用Python中的dict時,常常需要判斷某個關(guān)鍵字是否已經(jīng)在dict中,如果不存在則初始化,存在則進行另外的操作。例如統(tǒng)計一篇文章中所有單詞出現(xiàn)次數(shù)的代碼,大致寫法如下:

words_num = {}
for word in words:
    if word not in words_num.keys():
        words_num[word] = 1
    else:
        words_num[word] += 1

這樣寫總是需要判斷key是否在dict中,不是很優(yōu)雅。

Python標準庫collections中defaultdict類可以很好的解決這個問題。這個類使用與dict幾乎一樣,除了可以在初始化時設置key的默認類型和數(shù)值。類的聲明格式為defaultdict(default_factory=None, /[, ...]),default_factory是一個Callable類型的變量。

例如,foo = defaultdict(int)表示foo中的key的默認類型是int,且默認值為int的默認值0,我們可以獲取任意的key,不需要手動初始化key:

>>> from collections import defaultdict
>>> foo = defaultdict(int)
>>> foo['a']
0
>>> foo['b']
0
>>> foo['whatever']
0
>>> foo['a'] += 1
>>> foo['a']
1

所以最開始的例子可以簡化為如下:

from collections import defaultdict
words_num = defaultdict(int)
for word in words:
    words_num[word] += 1

可以看到使用defaultdict后,代碼中只需要關(guān)注上層邏輯(統(tǒng)計單詞的出現(xiàn)次數(shù)),而不需要關(guān)注具體的語法的代碼實現(xiàn)(dict是否存在某個key,沒有的話xxx,有的話xxx),因此世界變得更美好了一些。

除了int外,用list,tuple,dict,set等作為變量也比較常見。除了內(nèi)置類型外,還可以自定義函數(shù),比如設置key的默認值為'China':

>>> from collections import defaultdict
>>> def set_default_contry():
...     return "China"
...
>>> person_from = defaultdict(set_default_contry)
>>> person_from['張三']
'China'
>>> person_from['李四']
'China'
>>> person_from['Tim'] = 'USA'
>>> person_from
defaultdict(<function set_default_contry at 0x10896eca0>, {'a': 'China', '張三': 'China', '李四': 'China', 'Tim': 'USA'})

defauldict是一個簡單但很好用的功能,在日常的使用中還是能減少一些代碼復雜度的。希望這篇小文能給讓你寫代碼更容易,更開心。

以上就是Python defaultdict教程示例詳解的詳細內(nèi)容,更多關(guān)于Python defaultdict教程的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python操作mongodb數(shù)據(jù)庫的方法詳解

    Python操作mongodb數(shù)據(jù)庫的方法詳解

    這篇文章主要介紹了Python操作mongodb數(shù)據(jù)庫的方法,結(jié)合實例形式詳細分析了Python下載、安裝pymongo及操作MongoDB數(shù)據(jù)庫相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2018-12-12
  • python使用裝飾器作日志處理的方法

    python使用裝飾器作日志處理的方法

    今天小編就為大家分享一篇python使用裝飾器作日志處理的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python音樂爬蟲完美繞過反爬

    Python音樂爬蟲完美繞過反爬

    這篇文章主要介紹了Python音樂爬蟲完美繞過反爬的過程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • pyside6-uic生成py代碼中文為unicode(亂碼)的問題解決方案

    pyside6-uic生成py代碼中文為unicode(亂碼)的問題解決方案

    這篇文章主要介紹了如何解決pyside6-uic生成py代碼中文為unicode(亂碼)的問題,文中通過代碼和圖文介紹的非常詳細,對大家解決問題有一定的幫助,需要的朋友可以參考下
    2024-02-02
  • 教你用Python尋找重復文件并刪除的腳本寫法

    教你用Python尋找重復文件并刪除的腳本寫法

    這篇文章主要介紹了如何用Python尋找重復文件并刪除,該腳本主要包括diskwalk,chechsum,find_dupes,delete模塊,其中diskwalk模塊是遍歷文件的,給定路徑,遍歷輸出該路徑下的所有文件,需要的朋友可以參考下
    2022-01-01
  • 基于OpenCV和Gradio實現(xiàn)簡單的人臉識別詳解

    基于OpenCV和Gradio實現(xiàn)簡單的人臉識別詳解

    這篇文章主要為大家詳細介紹了如何基于OpenCV和Gradio實現(xiàn)簡單的人臉識別功能,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2023-04-04
  • python 全文檢索引擎詳解

    python 全文檢索引擎詳解

    這篇文章主要介紹了python 全文檢索引擎詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • python矩陣運算,轉(zhuǎn)置,逆運算,共軛矩陣實例

    python矩陣運算,轉(zhuǎn)置,逆運算,共軛矩陣實例

    這篇文章主要介紹了python矩陣運算,轉(zhuǎn)置,逆運算,共軛矩陣實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 在Python中操作PDF的常見方法小結(jié)

    在Python中操作PDF的常見方法小結(jié)

    當在Python中操作PDF時,有幾種常見的方法,每種方法都有其獨特的優(yōu)點和用例,在本文中,我們將深入探討這些方法,并提供豐富的示例代碼,以幫助大家更好地理解如何使用這些技術(shù),需要的朋友可以參考下
    2024-01-01
  • python實現(xiàn)對excel中需要的數(shù)據(jù)的單元格填充顏色

    python實現(xiàn)對excel中需要的數(shù)據(jù)的單元格填充顏色

    這篇文章主要介紹了python實現(xiàn)對excel中需要的數(shù)據(jù)的單元格填充顏色,文章圍繞主題展開詳細單元格填充介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06

最新評論