問題

我想在更新金鑰的值之前測試字典中是否存在金鑰. 我寫了以下程式碼:

 if 'key1' in dict.keys():
  print "blah"
else:
  print "boo"
 

我認為這不是完成此任務的最佳方法.有沒有更好的方法來測試字典中的鍵?

  最佳答案

in 是測試 dict 中是否存在金鑰的預期方法。

 d = dict()

for i in range(100):
    key = i % 10
    if key in d:
        d[key] += 1
    else:
        d[key] = 1
 

如果您想要預設,您可以始終使用dict.get():

 d = dict()

for i in range(100):
    key = i % 10
    d[key] = d.get(key, 0) + 1
 

....如果您想始終確保任何鍵的預設值,您可以從collections模組使用defaultdict,如下所示:

 from collections import defaultdict

d = defaultdict(int)

for i in range(100):
    d[i % 10] += 1
 

...但一般來說,in關鍵字是最好的方法.

  相同標籤的其他問題

pythondictionary