網站首頁 編程語言 正文
defaultdict
是普通字典dict的一個子類。通過collections
庫的defaultdict()方法創建。
defaultdict()需要傳入的參數為 類名。(type類型)
首先,以int類 作為參數傳入為例,
from collections import defaultdict dedict = defaultdict(int) print(dedict)
不同于普通的字典,其特性在于,當用一個defaultdict
中不存在的鍵來調用時,不會報KeyError
錯誤
以調取’a’鍵的值為例:
print(dedict['a'])
此鍵的值默認為零。這是defaultdict()
參數為int
的情況,參數不同,默認值也不同。
defaultdict()需要傳入的參數為 類名。(type類型)
傳入其他類,來創建defaultdict(),效果如下:
from collections import defaultdict dedict1 = defaultdict(list) dedict2 = defaultdict(set) dedict3 = defaultdict(dict) dedict4 = defaultdict(tuple) dedict5 = defaultdict(int) dedict6 = defaultdict(float) dedict7 = defaultdict(str) # 創建一個什么用都沒有的類 class A(object): ? ? pass # 傳入可用! dedict8 = defaultdict(A) print(dedict1['a']) print(dedict2['a']) print(dedict3['a']) print(dedict4['a']) print(dedict5['a']) print(dedict6['a']) print(dedict7['a']) print(dedict8['a'])
程序運行結果如下:
可以看出,不存在的鍵的默認值為 傳入 類 的 默認實例對象。
默認值的布爾值通常為False,但也不一定。
是否為False跟類有關,如此處的通過A類的布爾值就為True。
甚至,還可以套娃:
dedict9 = defaultdict(defaultdict) print(dedict9['a'])
defaultdict常用于統計多個目標數據的個數,并存儲在defaultdict字典中。
示例如下:
from collections import defaultdict bag = ["cheese", "Bread", "apple", "Bread", "orange", "cheese", 'apple',"milk", "apple", "bananas", "milk"] count = defaultdict(int) for item in bag: ? ? count[item] += 1 print(count)
原文鏈接:https://skylarkprogramming.blog.csdn.net/article/details/122839482
相關推薦
- 2022-08-28 前端實現加載完畢之前loading提示效果
- 2022-08-29 Python正則表達式?r'(.*)?are?(.*?)?.*'的深入理解_python
- 2022-10-27 Python使用pandas將表格數據進行處理_python
- 2022-12-28 React組件通信實現流程詳解_React
- 2022-01-08 vscode推送代碼失敗,報錯You are not allowed to push code to
- 2023-08-01 elementui DateTimePicker組件 限制時間范圍(包含時分秒)
- 2022-11-27 搭建?Selenium+Python開發環境詳細步驟_python
- 2022-12-10 Go?web中cookie值安全securecookie庫使用原理_Golang
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支