網站首頁 編程語言 正文
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
相關推薦
- 2023-11-15 Latex解決表格過寬問題,自適應調整寬度;自動調整適合的表格大小
- 2022-03-26 聊聊virtualbox6安裝centos增強功能問題_VirtualBox
- 2022-06-21 Flutter實現單選,復選和開關組件的示例代碼_Android
- 2023-07-10 匿名內部類、Lambda表達式、方法引用對比分析
- 2022-08-27 C++中Boost的智能指針shared_ptr_C 語言
- 2022-06-12 Flask項目的部署的實現步驟_python
- 2023-10-15 webrtc 測試video_loopback
- 2022-10-26 Jira?任務管理系統項目總結講解_React
- 最近更新
-
- 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同步修改后的遠程分支