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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MYSQL中給時間列設定預設值MySql
- javascript給函式引數設定預設值JavaScript函式
- C#給自動屬性設定預設值C#
- js給函式設定預設值程式碼例項JS函式
- Python中的預設引數值Python
- sql設定欄位預設值SQL
- django 設定預設值到SQLDjangoSQL
- python-字典-如何取出字典中的所有值Python
- 如何給 SAP Commerce Cloud Site 設定預設語言Cloud
- SCSS 檔案裡的感嘆號用法 - 給變數設定預設值CSS變數
- MySQL欄位預設值設定詳解MySql
- input元素預設選中設定
- 在Docker中,如何更改Docker的預設儲存設定?Docker
- 陷阱!python引數預設值Python
- Python中遍歷字典以及字典中的鍵和值Python
- Golang技巧之預設值設定的高階玩法Golang
- Vantui---picker三級聯動設定預設值UI
- 寶塔如何設定預設站點
- Python 設定系統預設編碼Python
- idea中設定maven預設位置IdeaMaven
- ${VAR:=預設值}和${VAR:-預設值} 區別
- Python 如何根據給定模型計算權值Python模型
- Python如何根據給定模型計算權值Python模型
- springmvc引數設定預設值,多地址請求SpringMVC
- SharePoint 多行文字欄位設定預設值
- MySQL設定當前時間為預設值的方法MySql
- antdesign的表單中的下拉框設定預設值BUG處理
- onethink支援給session設定陣列值嗎?Session陣列
- python字典如何刪除鍵值對Python
- mysql中sql_mode值設定MySql
- scrapy預設設定
- 建議欄位別名定義定義那裡順便可定義預設值,這預設值還可以是函式函式
- 【COLUMN】設定表欄位預設值僅對未來生效
- 為 protocol 中屬性新增預設值Protocol
- Oracle中NLS_LANG的預設值Oracle
- html如何設定radio單選按鈕預設選中效果HTML
- AWS DocumentDB 如何設定為預設 write concern
- 如何給PDF檔案設定密碼?密碼