Python基礎(chǔ)語法中defaultdict的使用小結(jié)
Python的defaultdict是collections模塊中提供的一種特殊的字典類型,它與普通的字典(dict)有著相似的功能,但有一個關(guān)鍵的不同點:當(dāng)訪問一個不存在的鍵時,defaultdict不會拋出KeyError異常,而是會自動為該鍵創(chuàng)建一個默認(rèn)值。這種特性使得在處理需要初始化新鍵的情況時更加方便。
創(chuàng)建defaultdict
要使用defaultdict
,首先需要從collections
模塊導(dǎo)入它:
from collections import defaultdict
然后可以創(chuàng)建一個defaultdict
實例,傳入一個可調(diào)用對象作為default_factory參數(shù)。
這個可調(diào)用對象決定了當(dāng)訪問不存在的鍵時應(yīng)該返回的默認(rèn)值類型。
例如:
- 使用
int
作為default_factory
將返回整數(shù)0
。 - 使用
list
作為default_factory
將返回空列表[]
。 - 使用
set
作為default_factory
將返回空集合set()
。 - 使用自定義函數(shù)作為
default_factory
將根據(jù)該函數(shù)的返回值來確定默認(rèn)值。
示例1
from collections import defaultdict bag = ['apple', 'orange', 'cherry', 'apple','apple', 'cherry', 'blueberry'] count = defaultdict(int) # 使用int作為default_factory print(f"\n > > > > > > count:\n {count}") print(f"\n > > > > > > type(count):\n {type(count)}") for fruit in bag: count[fruit] += 1 print(f"\n > > > > > > count:\n {count}")
輸出:
> > > > > > count:
defaultdict(<class 'int'>, {})> > > > > > type(count):
<class 'collections.defaultdict'>> > > > > > count:
defaultdict(<class 'int'>, {'apple': 3, 'orange': 1, 'cherry': 2, 'blueberry': 1})
在這個例子中,對一個不存在的鍵進(jìn)行操作時,defaultdict會自動為該鍵分配一個默認(rèn)值0,并允許直接對其進(jìn)行遞增操作。
示例2
from collections import defaultdict names = [('group1', 'Alice'), ('group2', 'Bob'), ('group1', 'Charlie')] grouped_names = defaultdict(list) print(f"\n > > > > > > grouped_names:\n {grouped_names}") print(f"\n > > > > > > type(grouped_names):\n {type(grouped_names)}") for group, name in names: grouped_names[group].append(name) print(f"\n > > > > > > grouped_names:\n {grouped_names}")
輸出:
> > > > > > grouped_names:
defaultdict(<class 'list'>, {})> > > > > > type(grouped_names):
<class 'collections.defaultdict'>> > > > > > grouped_names:
defaultdict(<class 'list'>, {'group1': ['Alice', 'Charlie'], 'group2': ['Bob']})
在這個例子中,根據(jù)第一個元素對名字進(jìn)行了分組。如果使用普通字典,則需要額外的邏輯來檢查和初始化每個新組。
到此這篇關(guān)于Python基礎(chǔ)語法中defaultdict的使用小結(jié)的文章就介紹到這了,更多相關(guān)Python defaultdict內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用python爬取微博數(shù)據(jù)打造一顆“心”
這篇文章主要介紹了使用python基于微博數(shù)據(jù)打造一顆“心”,作為程序員,我準(zhǔn)備了一份特別的禮物,用以往發(fā)的微博數(shù)據(jù)打造一顆“愛心”,我想她一定會感動得哭了吧,需要的朋友可以參考下2019-06-06用Python登錄Gmail并發(fā)送Gmail郵件的教程
這篇文章主要介紹了用Python登錄Gmail并發(fā)送Gmail郵件的教程,利用了Python的SMTP庫,代碼非常簡單,需要的朋友可以參考下2015-04-04使用pyqt5 實現(xiàn)ComboBox的鼠標(biāo)點擊觸發(fā)事件
這篇文章主要介紹了使用pyqt5 實現(xiàn)ComboBox的鼠標(biāo)點擊觸發(fā)事件,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03mac下pycharm設(shè)置python版本的圖文教程
今天小編就為大家分享一篇mac下pycharm設(shè)置python版本的圖文教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06詳解Python開發(fā)語言中的基本數(shù)據(jù)類型
數(shù)據(jù)類型想必大家都知道是什么含義,指的是輸入數(shù)據(jù)的類型,任何數(shù)據(jù)都有明確的數(shù)據(jù)類型。本文主要和大家聊聊Python的三種基本數(shù)據(jù)類型,感興趣的可以了解一下2022-10-10Python 安裝setuptools和pip工具操作方法(必看)
下面小編就為大家?guī)硪黄狿ython 安裝setuptools和pip工具操作方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05Python?Collections庫的高級功能使用示例詳解
Python的collections庫提供了一系列有用的數(shù)據(jù)類型,擴(kuò)展了內(nèi)建的數(shù)據(jù)類型,為開發(fā)者提供了更多高級功能,本文將深入探討collections庫的一些高級功能,通過詳細(xì)的示例代碼演示,幫助大家更好地理解和應(yīng)用這些功能2023-12-12