Python中如何給字典設定預設值
Python字典設定預設值
我們都知道,在 Python 的字典裡邊,如果 key 不存在的話,透過 key 去取值是會報錯的。
>>> aa = {'a':1, 'b':2} >>> aa['c'] Traceback (most recent call last): File "", line 1, inKeyError: 'c'
如果我們在取不到值的時候不報錯而是給定一個預設值的話就友好多了。
初始化的時候設定預設值(defaultdict 或 dict.fromkeys)
>>> from collections import defaultdict >>> aa = defaultdict(int) >>> aa['a'] = 1 >>> aa['b'] = 2 >>> aa defaultdict(, {'a': 1, 'b': 2}) >>> aa['c'] >>> aa defaultdict(, {'a': 1, 'b': 2, 'c': 0}) >>> aa = dict.fromkeys('abc', 0) >>> aa {'a': 0, 'b': 0, 'c': 0}
defaultdict(default_factory) 中的 default_factory 也可以傳入自定義的匿名函式之類的喲。
>>> aa = defaultdict(lambda : 1) >>> aa['a'] 1
獲取值之前的時候設定預設值(setdefault(key, default))
這裡有個比較特殊的點:只要對應的 key 已經被設定了值之後,那麼對相同 key 再次設定預設值就沒用了。
因此,如果你在迴圈裡邊給一個 key 重複設定預設值的話,那麼也只會第一次設定的生效。
>>> aa = {'a':1, 'b':2} >>> aa {'a': 1, 'b': 2} >>> aa.get('c') >>> aa.setdefault('c', 'hello') 'hello' >>> aa.get('c') 'hello' >>> aa {'a': 1, 'b': 2, 'c': 'hello'} >>> aa.setdefault('c', 'world') 'hello' >>> aa.get('c') 'hello'
獲取值的時候設定預設值(dict.get(key, default))
>>> aa = {'a':1, 'b':2} >>> aa {'a': 1, 'b': 2} >>> aa['c'] Traceback (most recent call last): File "", line 1, inKeyError: 'c' >>> aa.get('c') >>> aa {'a': 1, 'b': 2} >>> aa.get('c', 'hello') 'hello' >>> aa.get('b') 2
python建立帶預設值的字典
防止keyerror建立帶預設值的字典
from collections import defaultdict data = collections.defaultdict(lambda :[])
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2938103/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C#給自動屬性設定預設值C#
- 如何給 SAP Commerce Cloud Site 設定預設語言Cloud
- python-字典-如何取出字典中的所有值Python
- sql設定欄位預設值SQL
- SCSS 檔案裡的感嘆號用法 - 給變數設定預設值CSS變數
- MySQL欄位預設值設定詳解MySql
- SharePoint 多行文字欄位設定預設值
- input元素預設選中設定
- idea中設定maven預設位置IdeaMaven
- Python中遍歷字典以及字典中的鍵和值Python
- 在Docker中,如何更改Docker的預設儲存設定?Docker
- onethink支援給session設定陣列值嗎?Session陣列
- Golang技巧之預設值設定的高階玩法Golang
- Vantui---picker三級聯動設定預設值UI
- springmvc引數設定預設值,多地址請求SpringMVC
- Python 如何根據給定模型計算權值Python模型
- Python如何根據給定模型計算權值Python模型
- 寶塔如何設定預設站點
- antdesign的表單中的下拉框設定預設值BUG處理
- ${VAR:=預設值}和${VAR:-預設值} 區別
- python字典如何刪除鍵值對Python
- webapi 設定swagger上請求引數的預設值WebAPISwagger
- AWS DocumentDB 如何設定為預設 write concern
- 建議欄位別名定義定義那裡順便可定義預設值,這預設值還可以是函式函式
- mysql中sql_mode值設定MySql
- 如何給PDF檔案設定密碼?密碼
- react設定預設state和預設propsReact
- Go 100 mistakes 之如何正確設定列舉值中的零值Go
- 設定radio單選按鈕預設選中
- 設定SAP標準報表顯示介面預設值的方式
- pydantic 欄位的預設值設定獲取當前時間
- matplotlib預設字型設定
- win10如何設定系統預設播放_win10設定預設影片播放器的方法Win10播放器
- 為 protocol 中屬性新增預設值Protocol
- ES6小技巧 - 使用解構賦值設定函式引數預設值賦值函式
- [需求建議]建議欄位別名定義定義那裡順便可定義預設值,這預設值還可以是函式函式
- Navicat for MySQL 15使用教程:何時使用預設值以及如何選用恰當的預設值MySql
- CentOS7預設的快捷鍵如何修改設定CentOS