84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
我想在更新鍵的值之前測試字典中是否存在該鍵。 我編寫了以下程式碼:
if 'key1' in dict.keys(): print "blah" else: print "boo"
我認為這不是完成這項任務的最佳方式。有沒有更好的方法來測試字典中的鍵?
直接使用key in my_dict而不是key in my_dict.keys():
key in my_dict
key in my_dict.keys()
if 'key1' in my_dict: print("blah") else: print("boo")
這會更快,因為它使用字典的 O(1) 哈希,而不是執行 O(n )對鍵列表進行線性搜尋。
in 測試dict# 中是否存在鍵:
in
dict
d = {"key1": 10, "key2": 23} if "key1" in d: print("this will execute") if "nonexistent key" in d: print("this will not")
使用dict.get() 當鍵不存在時提供預設值:
dict.get()
d = {} for i in range(100): key = i % 10 d[key] = d.get(key, 0) + 1
要為每個鍵提供預設值,請使用dict.setdefault() 在每個作業上:
dict.setdefault()
d = {} for i in range(100): d[i % 10] = d.setdefault(i % 10, 0) + 1
...或更好,使用 defaultdict# 來自 #collections 模組:
defaultdict
#collections
from collections import defaultdict d = defaultdict(int) for i in range(100): d[i % 10] += 1
直接使用
key in my_dict
而不是key in my_dict.keys()
:這會更快,因為它使用字典的 O(1) 哈希,而不是執行 O(n )對鍵列表進行線性搜尋。
in
測試dict
# 中是否存在鍵:使用
dict.get()
當鍵不存在時提供預設值:要為每個鍵提供預設值,請使用
dict.setdefault()
在每個作業上:...或更好,使用
defaultdict
# 來自#collections
模組: