最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python?defaultdict教程示例詳解

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

1. 概述

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

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

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

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

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

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

所以最開(kāi)始的例子可以簡(jiǎn)化為如下:

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

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

除了int外,用list,tuple,dict,set等作為變量也比較常見(jiàn)。除了內(nèi)置類(lèi)型外,還可以自定義函數(shù),比如設(shè)置key的默認(rèn)值為'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是一個(gè)簡(jiǎn)單但很好用的功能,在日常的使用中還是能減少一些代碼復(fù)雜度的。希望這篇小文能給讓你寫(xiě)代碼更容易,更開(kāi)心。

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

相關(guān)文章

  • Python+Mysql實(shí)現(xiàn)登錄注冊(cè)完整代碼示例

    Python+Mysql實(shí)現(xiàn)登錄注冊(cè)完整代碼示例

    在開(kāi)發(fā)中用戶(hù)注冊(cè)和登錄是常見(jiàn)的功能需求,這篇文章主要給大家介紹了關(guān)于Python+Mysql實(shí)現(xiàn)登錄注冊(cè)的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • Python之讀取TXT文件的方法小結(jié)

    Python之讀取TXT文件的方法小結(jié)

    下面小編就為大家分享一篇Python之讀取TXT文件的方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • python解壓TAR文件至指定文件夾的實(shí)例

    python解壓TAR文件至指定文件夾的實(shí)例

    今天小編就為大家分享一篇python解壓TAR文件至指定文件夾的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-06-06
  • pybind11和numpy進(jìn)行交互的方法

    pybind11和numpy進(jìn)行交互的方法

    這篇文章主要介紹了pybind11和numpy進(jìn)行交互的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下
    2019-07-07
  • python 根據(jù)pid殺死相應(yīng)進(jìn)程的方法

    python 根據(jù)pid殺死相應(yīng)進(jìn)程的方法

    下面小編就為大家?guī)?lái)一篇python 根據(jù)pid殺死相應(yīng)進(jìn)程的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • python爬蟲(chóng)爬取股票的北上資金持倉(cāng)數(shù)據(jù)

    python爬蟲(chóng)爬取股票的北上資金持倉(cāng)數(shù)據(jù)

    這篇文章主要介紹了python爬蟲(chóng)爬取股票的北上資金持倉(cāng)數(shù)據(jù),文章基于python的相關(guān)資料展開(kāi)爬取數(shù)據(jù)的詳細(xì)內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • Python?matplotlib調(diào)整坐標(biāo)軸位置、標(biāo)簽位置和標(biāo)簽方向以及X軸刻度標(biāo)簽位置

    Python?matplotlib調(diào)整坐標(biāo)軸位置、標(biāo)簽位置和標(biāo)簽方向以及X軸刻度標(biāo)簽位置

    我們?cè)谟胢atplotlib繪制圖的時(shí)候總是有各種需求,下面這篇文章主要給大家介紹了關(guān)于Python?matplotlib調(diào)整坐標(biāo)軸位置、標(biāo)簽位置和標(biāo)簽方向以及X軸刻度標(biāo)簽位置的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • pandas的空數(shù)據(jù)處理方式

    pandas的空數(shù)據(jù)處理方式

    數(shù)據(jù)清洗是關(guān)鍵步驟,尤其是處理空數(shù)據(jù),Pandas提供.isna()識(shí)別、.dropna()刪除和填充函數(shù)(如使用平均值、中位數(shù)或眾數(shù))來(lái)處理數(shù)據(jù)集中的空值,以提高數(shù)據(jù)分析的準(zhǔn)確性,有效的空數(shù)據(jù)處理可以確保數(shù)據(jù)集的完整性和可靠性
    2024-09-09
  • python腳本實(shí)現(xiàn)查找webshell的方法

    python腳本實(shí)現(xiàn)查找webshell的方法

    這篇文章主要介紹了python腳本實(shí)現(xiàn)查找webshell的方法,是很實(shí)用的一個(gè)功能,需要的朋友可以參考下
    2014-07-07
  • 詳解python日期時(shí)間處理2

    詳解python日期時(shí)間處理2

    這篇文章主要為大家介紹了python日期時(shí)間處理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12

最新評(píng)論

科技| 张家川| 石阡县| 恩平市| 东乡族自治县| 三明市| 文昌市| 巴林右旗| 渝北区| 扬州市| 康马县| 鲁甸县| 柳州市| 红原县| 易门县| 呈贡县| 隆安县| 云南省| 佛学| 崇信县| 福建省| 毕节市| 永吉县| 交城县| 宝坻区| 云和县| 广宁县| 泰宁县| 金湖县| 喀什市| 夏津县| 云和县| 若羌县| 内乡县| 三门县| 保德县| 鄂州市| 阜宁县| 通州区| 平顺县| 台北县|