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

當前位置:首頁 > 科技  > 軟件

Python 中的 defaultdict有什么用的?

來源: 責編: 時間:2023-12-13 17:00:15 237觀看
導讀在 Python 的標準庫中,有一個非常有用的數據結構工具叫做 defaultdict。它是 collections 模塊的一部分,提供了一種特殊的字典類型,可以在訪問不存在的鍵時返回一個默認值。本文將介紹 defaultdict 的用法,包括其基本語法

在 Python 的標準庫中,有一個非常有用的數據結構工具叫做 defaultdict。它是 collections 模塊的一部分,提供了一種特殊的字典類型,可以在訪問不存在的鍵時返回一個默認值。本文將介紹 defaultdict 的用法,包括其基本語法、常見用例。nUD28資訊網——每日最新資訊28at.com

1. 基本語法

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

from collections import defaultdictd = defaultdict(default_factory)

在上述代碼中,default_factory 是一個函數對象,用于定義默認值的生成規則。nUD28資訊網——每日最新資訊28at.com

2. 常見用例

a. 計數器

一個常見的用例是使用 defaultdict 實現計數器。假設我們有一個列表,想要統計每個元素出現的次數。可以使用 defaultdict 來簡化代碼:nUD28資訊網——每日最新資訊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)

輸出:nUD28資訊網——每日最新資訊28at.com

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

解析:在上述代碼中,我們創建了一個 defaultdict 對象 counter,并將 int 函數作為默認工廠函數。在遍歷列表 data 時,我們對 counter[num] 進行自增操作,由于初始時 counter 中不存在鍵 num,defaultdict 會自動使用 int 函數生成一個默認值 0,然后執行自增操作。最終,我們得到了每個元素出現次數的統計結果。nUD28資訊網——每日最新資訊28at.com

b. 分組

另一個常見的用例是使用 defaultdict 進行分組。假設我們有一個包含學生姓名和對應班級的列表,想要按班級將學生分組。可以使用 defaultdict 來實現:nUD28資訊網——每日最新資訊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)

輸出:nUD28資訊網——每日最新資訊28at.com

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

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

結論

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

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

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

上一篇: IDC 中國制造數字供應鏈整體解決方案 2023 年廠商評估出爐 京東位于“領導廠商”象限

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

標簽:
  • 熱門焦點
  • 鴻蒙OS 4.0公測機型公布:甚至連nova6都支持

    華為全新的HarmonyOS 4.0操作系統將于今天下午正式登場,官方在發布會之前也已經正式給出了可升級的機型產品,這意味著這些機型會率先支持升級享用。這次的HarmonyOS 4.0支持
  • 影音體驗是真的強 簡單聊聊iQOO Pad

    大公司的好處就是產品線豐富,非常細分化的東西也能給你做出來,例如早先我們看到了新的vivo Pad2,之后我們又在iQOO Neo8 Pro的發布會上看到了iQOO的首款平板產品iQOO Pad。雖
  • 石頭智能洗地機A10 Plus體驗:雙向自清潔治好了我的懶癌

    一、前言和介紹專為家庭請假懶人而生的石頭科技在近日又帶來了自己的全新旗艦新品,石頭智能洗地機A10 Plus。從這個產品名上就不難看出,這次石頭推出的并不是常見的掃地機器
  • 一篇聊聊Go錯誤封裝機制

    %w 是用于錯誤包裝(Error Wrapping)的格式化動詞。它是用于 fmt.Errorf 和 fmt.Sprintf 函數中的一個特殊格式化動詞,用于將一個錯誤(或其他可打印的值)包裝在一個新的錯誤中。使
  • 十個簡單但很有用的Python裝飾器

    裝飾器(Decorators)是Python中一種強大而靈活的功能,用于修改或增強函數或類的行為。裝飾器本質上是一個函數,它接受另一個函數或類作為參數,并返回一個新的函數或類。它們通常用
  • 從零到英雄:高并發與性能優化的神奇之旅

    作者 | 波哥審校 | 重樓作為公司的架構師或者程序員,你是否曾經為公司的系統在面對高并發和性能瓶頸時感到手足無措或者焦頭爛額呢?筆者在出道那會為此是吃盡了苦頭的,不過也得
  • 騰訊VS網易,最卷游戲暑期檔,誰能笑到最后?

    作者:無銹缽來源:財經無忌7月16日晚,上海1862時尚藝術中心。伴隨著幻象的精準命中,碩大的熒幕之上,比分被定格在了14:12,被寄予厚望的EDG戰隊以絕對的優勢戰勝了BLG戰隊,拿下了總決
  • iQOO Neo8 Pro真機諜照曝光:天璣9200+和V1+旗艦雙芯加持

    去年10月,iQOO推出了iQOO Neo7系列機型,不僅搭載了天璣9000+,而且是同價位唯一一款天璣9000+直屏旗艦,一經上市便受到了用戶的廣泛關注。在時隔半年后,
  • 與兆芯合作 聯想推出全新旗艦版筆記本電腦開天N7系列

    聯想與兆芯合作推出全新聯想旗艦版筆記本電腦開天 N7系列。這個系列采用兆芯KX-6640MA處理器平臺,KX-6640MA 處理器是采用了陸家嘴架構,16nm 工藝,4 核 4 線
Top 主站蜘蛛池模板: 龙川县| 伊通| 安康市| 雅安市| 邳州市| 连南| 赤水市| 土默特右旗| 天峨县| 白河县| 南华县| 府谷县| 青神县| 新竹市| 水富县| 潜江市| 张家港市| 绥化市| 哈巴河县| 泾川县| 利川市| 沧州市| 贺州市| 金寨县| 北辰区| 阳谷县| 赞皇县| 潜江市| 古蔺县| 井陉县| 正镶白旗| 荆门市| 岗巴县| 新平| 南开区| 彰化市| 阜康市| 腾冲县| 石门县| 平和县| 保定市|