Python dict和defaultdict使用實(shí)例解析
先看一個(gè)需求
from collections import defaultdict
"""
需求: 統(tǒng)計(jì)user_list中字母出現(xiàn)的次數(shù)
"""
user_dict = {}
user_list = ['A', 'B', 'C', 'A', 'C', 'C']
# 第一種方式
for item in user_list:
if item not in user_dict:
user_dict[item] = 1
else:
user_dict[item] += 1
print(user_dict) # {'A': 2, 'B': 1, 'C': 3}
# 第二種方式
user_dict = {}
user_list = ['A', 'B', 'C', 'A', 'C', 'C']
for item in user_list:
user_dict.setdefault(item, 0) # 如果user_dict無(wú)item這個(gè)key,添加{item:0} , 如果有,不管. 而且這個(gè)方法性能比第一種方式好
user_dict[item] += 1 # item的value值累加1
print(user_dict) # {'A': 2, 'B': 1, 'C': 3}
# 第三種方式.使用defaultdict
default_dict = defaultdict(int)
user_list = ['A', 'B', 'C', 'A', 'C', 'C']
for item in user_list:
default_dict[item] += 1 # 使用這種方式,代碼更簡(jiǎn)單,性能也更好
print(default_dict) # defaultdict(<class 'int'>, {'A': 2, 'B': 1, 'C': 3})
defaultdict的使用



由上面的示例可知,defaultdict會(huì)根據(jù)創(chuàng)建實(shí)例參數(shù)的類(lèi)型生成一個(gè)對(duì)應(yīng)類(lèi)型的默認(rèn)值,
這對(duì)于dict類(lèi)型的數(shù)據(jù)結(jié)構(gòu)而言,可以很好避免KeyError類(lèi)型的錯(cuò)誤 .
此外,我們還可以自定義defaultdict調(diào)用對(duì)象的數(shù)據(jù)結(jié)構(gòu),以滿足我們實(shí)際需要
def person():
'''自定義一個(gè)可調(diào)用對(duì)象'''
return {
'name': '',
'age': 0
}
default_dict = defaultdict(person)
default_dict['p']
pass

是不是很贊....
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python繪制的愛(ài)心樹(shù)與表白代碼(完整代碼)
這篇文章主要介紹了Python繪制的愛(ài)心樹(shù)與表白代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
Python正則表達(dá)式函數(shù)match()和search()使用全面指南
在Python中,正則表達(dá)式是強(qiáng)大的工具,能夠用于文本匹配、搜索和替換,re模塊提供了許多函數(shù)來(lái)處理正則表達(dá)式,其中match()和search()是兩個(gè)常用的函數(shù),本文將深入探討這兩個(gè)函數(shù)的用法、區(qū)別和示例,幫助你更好地理解它們的功能2024-01-01
Pytorch模型遷移和遷移學(xué)習(xí),導(dǎo)入部分模型參數(shù)的操作
這篇文章主要介紹了Pytorch模型遷移和遷移學(xué)習(xí),導(dǎo)入部分模型參數(shù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
Python詳解argparse參數(shù)模塊之命令行參數(shù)
這篇文章主要介紹了Python詳解argparse參數(shù)模塊之命令行參數(shù),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考下面文章詳解2022-07-07
python端口掃描系統(tǒng)實(shí)現(xiàn)方法
這篇文章主要介紹了python端口掃描系統(tǒng)實(shí)現(xiàn)方法,可實(shí)現(xiàn)簡(jiǎn)單的外網(wǎng)IP掃描及寫(xiě)入MySQL數(shù)據(jù)庫(kù)等功能,需要的朋友可以參考下2014-11-11
TensorFlow實(shí)現(xiàn)批量歸一化操作的示例
這篇文章主要介紹了TensorFlow實(shí)現(xiàn)批量歸一化操作的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
為何你的Python代碼在Notepad++中只閃現(xiàn)一下就消失無(wú)蹤?
你是否曾在Notepad++中運(yùn)行編寫(xiě)的Python代碼,卻發(fā)現(xiàn)它們瞬間消失無(wú)蹤?別擔(dān)心,這不是你的幻覺(jué),在這篇指南中,我們將揭秘這一現(xiàn)象背后的原因,并教你如何輕松解決,讓我們一起揭開(kāi)這個(gè)謎團(tuán),讓你的Python代碼在Notepad++中安然無(wú)恙吧!2024-02-02
python實(shí)現(xiàn)馬丁策略的實(shí)例詳解
這篇文章主要介紹了python實(shí)現(xiàn)馬丁策略的實(shí)例詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01

