Python dict和defaultdict使用實例解析
更新時間:2020年03月12日 10:41:23 作者:我太難了008
這篇文章主要介紹了Python dict和defaultdict使用實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
先看一個需求
from collections import defaultdict """ 需求: 統(tǒng)計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無item這個key,添加{item:0} , 如果有,不管. 而且這個方法性能比第一種方式好 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 # 使用這種方式,代碼更簡單,性能也更好 print(default_dict) # defaultdict(<class 'int'>, {'A': 2, 'B': 1, 'C': 3})
defaultdict的使用
由上面的示例可知,defaultdict會根據(jù)創(chuàng)建實例參數(shù)的類型生成一個對應類型的默認值,
這對于dict類型的數(shù)據(jù)結構而言,可以很好避免KeyError類型的錯誤 .
此外,我們還可以自定義defaultdict調用對象的數(shù)據(jù)結構,以滿足我們實際需要
def person(): '''自定義一個可調用對象''' return { 'name': '', 'age': 0 } default_dict = defaultdict(person) default_dict['p'] pass
是不是很贊....
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Python正則表達式函數(shù)match()和search()使用全面指南
在Python中,正則表達式是強大的工具,能夠用于文本匹配、搜索和替換,re模塊提供了許多函數(shù)來處理正則表達式,其中match()和search()是兩個常用的函數(shù),本文將深入探討這兩個函數(shù)的用法、區(qū)別和示例,幫助你更好地理解它們的功能2024-01-01Pytorch模型遷移和遷移學習,導入部分模型參數(shù)的操作
這篇文章主要介紹了Pytorch模型遷移和遷移學習,導入部分模型參數(shù)的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03Python詳解argparse參數(shù)模塊之命令行參數(shù)
這篇文章主要介紹了Python詳解argparse參數(shù)模塊之命令行參數(shù),文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考下面文章詳解2022-07-07為何你的Python代碼在Notepad++中只閃現(xiàn)一下就消失無蹤?
你是否曾在Notepad++中運行編寫的Python代碼,卻發(fā)現(xiàn)它們瞬間消失無蹤?別擔心,這不是你的幻覺,在這篇指南中,我們將揭秘這一現(xiàn)象背后的原因,并教你如何輕松解決,讓我們一起揭開這個謎團,讓你的Python代碼在Notepad++中安然無恙吧!2024-02-02