<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在Python中,defaultdict是一種特殊型別的字典,它可以自動為字典中不存在的鍵設定預設值。這種型別的字典是在collections模組中定義的。它為我們提供了一個更方便,更容易使用的字典。在這篇文章中,我們將深入探討Python中的defaultdict,並探討如何使用它們。
我們需要先匯入包含defaultdict的collections模組。可以通過在Python程式碼的頂部加入以下程式碼行來實現這一點:
from collections import defaultdict
建立defaultdict的方法在語法上與建立Python字典是相同的。我們只需要將defaultdict的型別作為建構函式的引數。例如,如果我們要建立一個儲存整數的defaultdict,我們可以使用以下程式碼:
int_dict = defaultdict(int)
如果我們要在defaultdict中儲存字串,可以使用以下程式碼:
str_dict = defaultdict(str)
在這兩種情況下,我們都通過向defaultdict建構函式傳遞型別來定義了一個新的defaultdict範例。這個型別對於defaultdict的所有鍵都將設定為相應的預設值。
當試圖存取defaultdict的鍵時,如果該鍵不存在,則會自動設定與傳遞給建構函式的型別相應的預設值。例如,在下面的程式碼中,我們使用defaultdict儲存一個人的年齡,並將預設值設定為0:
age_dict = defaultdict(int) age_dict['alice'] = 25 age_dict['bob'] = 30 age_dict['charlie'] print(age_dict)
輸出將是 {‘alice’: 25, ‘bob’: 30, ‘charlie’: 0} ,當 ‘charlie’ 還沒有在 default 字典中時,自動用預設值 0 進行填充。
在這個例子中,我們給預設字典新增了兩個鍵, ‘alice’ 和 ‘bob’ ,並直接查詢了另一個鍵 ‘charlie’ ,這個鍵不在字典中。由於 ‘charlie’ 不存在於字典中,defaultdict自動地將該鍵對應的值設定為位於建構函式中傳遞的相應型別的預設值(在這種情況下是整數0)。我們可以看到,這確實是我們預期的結果。
我們還可以通過為defaultdict函數提供一個函數作為預設值來定義一個預設值。這個函數將在字典中缺少某個鍵的情況下呼叫,並返回所需的預設值。例如,我們可以使用以下程式碼定義一個函數,該函數以字典中的鍵作為其預設值:
def return_key(): return "unknown" key_dict = defaultdict(return_key) key_dict['apple'] = 'fruit' print(key_dict['pear']) print(key_dict['banana'])
輸出將是:
unknown
unknown
在這個例子中,我們定義了一個函數 return_key() ,它簡單地返回 “unknown” 。然後我們建立了一個 default 字典,並使用這個函數作為預設值來定義它。當我們嘗試存取 “pear” 和 “banana” 這兩個鍵時,我們得到了 “unknown” 這個預設值。但是,當我們在字典中新增了鍵 “apple” 時,我們得到了 “fruit”。
就本節介紹Python中的defaultdict而言,這就是全部內容了。我們發現defaultdict很容易使用,而且在許多情況下都非常有用。defaultdict自動在字典中缺少某個鍵時進行設定預設值,這特別適用於複雜的資料結構和巢狀字典。由於Python中的defaultdict是一個包含有用的功能的標準庫,所以大多數Python程式設計師都對其有一定的瞭解,因此對其理解是很有必要的。
到此這篇關於Python使用defaultdict解決字典預設值的文章就介紹到這了,更多相關Python defaultdict字典預設值內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45