iT邦幫忙

0

Python 字典{ dict }的不可變鍵、setdefault() 和 get()

  • 分享至 

  • xImage
  •  

不可變鍵 (Immutable Key)

在 Python 的字典中,鍵 (key) 必須是不可變的資料型態。這意味著,一旦將一個鍵值對加入字典,這個鍵就不能再被修改。

為什麼鍵必須是不可變的?

-哈希表: 字典底層是使用哈希表來實現的。哈希表通過計算鍵的哈希值來快速查找值。如果鍵是可變的,那麼它的哈希值也可能會改變,導致無法正確地定位到值。
-唯一性: 鍵在字典中必須是唯一的,如果鍵是可變的,那麼就無法保證鍵的唯一性。

哪些資料型態可以作為字典的鍵?

數字: 整數、浮點數
字串: 字符串
元組: 元組中的元素也必須是不可變的
布林值: True 或 False

setdefault() 方法

setdefault() 方法用於在字典中添加鍵值對。如果指定的鍵已經存在,則返回該鍵對應的值;如果不存在,則添加該鍵值對,並返回指定的默认值。

語法:

dict.setdefault(key, default=None)

-key: 要查找或添加的鍵。
-default: 如果鍵不存在,則添加的默认值。

my_dict = {'a': 1, 'b': 2}
value = my_dict.setdefault('c', 3)
print(my_dict)  # 输出:{'a': 1, 'b': 2, 'c': 3}
print(value)  # 输出:3

value = my_dict.setdefault('a', 4)
print(my_dict)  # 输出:{'a': 1, 'b': 2, 'c': 3}
print(value)  # 输出:1

get() 方法

get() 方法用於在字典中查找指定鍵的值。如果鍵存在,則返回對應的值;如果不存在,則返回指定的默认值。

語法:dict.get(key, default=None)

setdefault() 和 get() 的區別

setdefault(): 如果鍵不存在,則會添加一個新的鍵值對。
get(): 如果鍵不存在,則只返回默认值,不會修改字典。

何時使用 setdefault() 或 get()?

setdefault():
初始化字典時,為不存在的鍵設置默认值。
統計詞頻時,遇到新詞時自動增加計數。
get():
安全地獲取字典中的值,避免 KeyError 異常。
根據鍵的存在與否進行不同的操作。

總結

-字典的鍵必須是不可變的,以保證哈希表的正確性。
-setdefault() 方法用於添加鍵值對,如果鍵不存在則返回默认值。
-get() 方法用於獲取鍵對應的值,如果鍵不存在則返回默认值。
-選擇使用 setdefault() 或 get() 取決於具體的應用場景。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言