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

python中defaultdict的用法詳解

 更新時(shí)間:2017年06月07日 09:44:29   作者:天堂十八樓  
這篇文章主要為大家詳細(xì)介紹了python中defaultdict的用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

初識(shí)defaultdict

之前在使用字典的時(shí)候, 用的比較隨意, 只是簡單的使用dict.
然而這樣在使用不存在的key的時(shí)候發(fā)生KeyError這樣的一個(gè)報(bào)錯(cuò), 這時(shí)候就該defaultdict登場了.

如何使用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官方文檔中對defaultdict的定義如下:

class collections.defaultdict([default_factory[, ...]])

python官方文檔中對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)

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python編程中運(yùn)用閉包時(shí)所需要注意的一些地方

    Python編程中運(yùn)用閉包時(shí)所需要注意的一些地方

    這篇文章主要介紹了Python編程中運(yùn)用閉包時(shí)所需要注意的一些地方,文章來自國內(nèi)知名的Python開發(fā)者felinx的博客,需要的朋友可以參考下
    2015-05-05
  • pytest配置文件pytest.ini的詳細(xì)使用

    pytest配置文件pytest.ini的詳細(xì)使用

    這篇文章主要介紹了pytest配置文件pytest.ini的詳細(xì)使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Python 實(shí)現(xiàn)引用其他.py文件中的類和類的方法

    Python 實(shí)現(xiàn)引用其他.py文件中的類和類的方法

    下面小編就為大家分享一篇Python 實(shí)現(xiàn)引用其他.py文件中的類和類的方法,具有的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python中HTTP請求的全面指南

    Python中HTTP請求的全面指南

    在現(xiàn)代網(wǎng)絡(luò)應(yīng)用中,HTTP(HyperText Transfer Protocol)協(xié)議是客戶端與服務(wù)器之間數(shù)據(jù)傳輸?shù)暮诵?本文都將從基礎(chǔ)到高級(jí),逐步引導(dǎo)你成為HTTP請求處理的高手,快跟隨小編一起學(xué)習(xí)起來吧
    2024-10-10
  • pandas讀取csv格式數(shù)據(jù)時(shí)header參數(shù)設(shè)置方法

    pandas讀取csv格式數(shù)據(jù)時(shí)header參數(shù)設(shè)置方法

    本文主要介紹了pandas讀取csv格式數(shù)據(jù)時(shí)header參數(shù)設(shè)置方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 關(guān)于python3的ThreadPoolExecutor線程池大小設(shè)置

    關(guān)于python3的ThreadPoolExecutor線程池大小設(shè)置

    這篇文章主要介紹了關(guān)于python3的ThreadPoolExecutor線程池大小設(shè)置,線程池的理想大小取決于被提交任務(wù)的類型以及所部署系統(tǒng)的特性,需要的朋友可以參考下
    2023-04-04
  • anaconda創(chuàng)建、查看、激活與刪除虛擬環(huán)境指令總結(jié)

    anaconda創(chuàng)建、查看、激活與刪除虛擬環(huán)境指令總結(jié)

    在跑項(xiàng)目時(shí)常常會(huì)安裝很多的包,也通常會(huì)遇到需要安裝指定版本的包,以及包與包不兼容的問題,下面這篇文章主要給大家介紹了關(guān)于anaconda創(chuàng)建、查看、激活與刪除虛擬環(huán)境指令的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Django 允許局域網(wǎng)中的機(jī)器訪問你的主機(jī)操作

    Django 允許局域網(wǎng)中的機(jī)器訪問你的主機(jī)操作

    這篇文章主要介紹了Django 允許局域網(wǎng)中的機(jī)器訪問你的主機(jī)實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python中eval帶來的潛在風(fēng)險(xiǎn)代碼分析

    Python中eval帶來的潛在風(fēng)險(xiǎn)代碼分析

    這篇文章主要介紹了Python中eval帶來的潛在風(fēng)險(xiǎn)代碼分析,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Python學(xué)習(xí)之time模塊的基本使用

    Python學(xué)習(xí)之time模塊的基本使用

    這篇文章主要給大家介紹了關(guān)于Python學(xué)習(xí)之time模塊基本使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01

最新評論