日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

Python 中的 defaultdict有什么用的?

來源: 責(zé)編: 時間:2023-12-13 17:00:15 222觀看
導(dǎo)讀在 Python 的標(biāo)準(zhǔn)庫中,有一個非常有用的數(shù)據(jù)結(jié)構(gòu)工具叫做 defaultdict。它是 collections 模塊的一部分,提供了一種特殊的字典類型,可以在訪問不存在的鍵時返回一個默認(rèn)值。本文將介紹 defaultdict 的用法,包括其基本語法

在 Python 的標(biāo)準(zhǔn)庫中,有一個非常有用的數(shù)據(jù)結(jié)構(gòu)工具叫做 defaultdict。它是 collections 模塊的一部分,提供了一種特殊的字典類型,可以在訪問不存在的鍵時返回一個默認(rèn)值。本文將介紹 defaultdict 的用法,包括其基本語法、常見用例。AzY28資訊網(wǎng)——每日最新資訊28at.com

1. 基本語法

defaultdict 類的構(gòu)造函數(shù)與普通字典的構(gòu)造函數(shù)類似,但需要傳入一個默認(rèn)工廠函數(shù)作為參數(shù)。默認(rèn)工廠函數(shù)用于在訪問不存在的鍵時返回一個默認(rèn)值。以下是 defaultdict 的基本語法:AzY28資訊網(wǎng)——每日最新資訊28at.com

from collections import defaultdictd = defaultdict(default_factory)

在上述代碼中,default_factory 是一個函數(shù)對象,用于定義默認(rèn)值的生成規(guī)則。AzY28資訊網(wǎng)——每日最新資訊28at.com

2. 常見用例

a. 計數(shù)器

一個常見的用例是使用 defaultdict 實(shí)現(xiàn)計數(shù)器。假設(shè)我們有一個列表,想要統(tǒng)計每個元素出現(xiàn)的次數(shù)。可以使用 defaultdict 來簡化代碼:AzY28資訊網(wǎng)——每日最新資訊28at.com

from collections import defaultdictcounter = defaultdict(int)data = [1, 2, 3, 1, 2, 3, 4, 5, 4, 3, 2, 1]for num in data:   counter[num] += 1print(counter)

輸出:AzY28資訊網(wǎng)——每日最新資訊28at.com

defaultdict(<class 'int'>, {1: 3, 2: 3, 3: 3, 4: 2, 5: 1})

解析:在上述代碼中,我們創(chuàng)建了一個 defaultdict 對象 counter,并將 int 函數(shù)作為默認(rèn)工廠函數(shù)。在遍歷列表 data 時,我們對 counter[num] 進(jìn)行自增操作,由于初始時 counter 中不存在鍵 num,defaultdict 會自動使用 int 函數(shù)生成一個默認(rèn)值 0,然后執(zhí)行自增操作。最終,我們得到了每個元素出現(xiàn)次數(shù)的統(tǒng)計結(jié)果。AzY28資訊網(wǎng)——每日最新資訊28at.com

b. 分組

另一個常見的用例是使用 defaultdict 進(jìn)行分組。假設(shè)我們有一個包含學(xué)生姓名和對應(yīng)班級的列表,想要按班級將學(xué)生分組。可以使用 defaultdict 來實(shí)現(xiàn):AzY28資訊網(wǎng)——每日最新資訊28at.com

from collections import defaultdictstudents = [('Alice', 'A'), ('Bob', 'B'), ('Charlie', 'A'), ('Dave', 'B')]grouped_students = defaultdict(list)for name, group in students:   grouped_students[group].append(name)print(grouped_students)

輸出:AzY28資訊網(wǎng)——每日最新資訊28at.com

defaultdict(<class 'list'>, {'A': ['Alice', 'Charlie'], 'B': ['Bob', 'Dave']})

解析:在上述代碼中,我們創(chuàng)建了一個 defaultdict 對象 grouped_students,并將 list 函數(shù)作為默認(rèn)工廠函數(shù)。在遍歷學(xué)生列表 students 時,我們將每個學(xué)生的姓名 name 添加到對應(yīng)班級 group 的列表中。由于初始時 grouped_students 中不存在鍵 group,defaultdict 會自動使用 list 函數(shù)生成一個空列表,然后將學(xué)生姓名添加到列表中。最終,我們得到了按班級分組的學(xué)生列表。AzY28資訊網(wǎng)——每日最新資訊28at.com

結(jié)論

defaultdict 是 Python 中一個非常實(shí)用的數(shù)據(jù)結(jié)構(gòu)工具,可以在訪問不存在的鍵時返回一個默認(rèn)值。通過使用 defaultdict,我們可以簡化代碼,提高效率,并且使代碼更加易讀。它特別適用于計數(shù)器和分組等常見場景。AzY28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-44363-0.htmlPython 中的 defaultdict有什么用的?

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: IDC 中國制造數(shù)字供應(yīng)鏈整體解決方案 2023 年廠商評估出爐 京東位于“領(lǐng)導(dǎo)廠商”象限

下一篇: Python 也能干大事,拷貝也有大學(xué)問

標(biāo)簽:
  • 熱門焦點(diǎn)
Top 主站蜘蛛池模板: 枣强县| 赤水市| 九龙城区| 筠连县| 黑山县| 开鲁县| 兴山县| 马边| 德庆县| 勃利县| 罗甸县| 罗源县| 旬阳县| 霞浦县| 元阳县| 赞皇县| 马鞍山市| 英德市| 噶尔县| 土默特右旗| 莱芜市| 榆中县| 科尔| 讷河市| 安溪县| 新民市| 扎鲁特旗| 延长县| 黄梅县| 隆安县| 太和县| 通化县| 隆林| 林州市| 佛学| 镇康县| 镇远县| 丹东市| 武冈市| 皋兰县| 杭锦后旗|