搜尋

首頁  >  問答  >  主體

檢查字典中是否已存在給定的鍵

我想在更新鍵的值之前測試字典中是否存在該鍵。 我編寫了以下程式碼:

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

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

P粉489081732P粉489081732477 天前863

全部回覆(2)我來回復

  • P粉674876385

    P粉6748763852023-10-09 00:56:30

    直接使用key in my_dict而不是key in my_dict.keys()

    if 'key1' in my_dict:
        print("blah")
    else:
        print("boo")

    這會更快,因為它使用字典的 O(1) 哈希,而不是執行 O(n )對鍵列表進行線性搜尋。

    回覆
    0
  • P粉914731066

    P粉9147310662023-10-09 00:33:49

    in 測試dict# 中是否存在鍵:< /p>

    d = {"key1": 10, "key2": 23}
    
    if "key1" in d:
        print("this will execute")
    
    if "nonexistent key" in d:
        print("this will not")

    使用dict.get() 當鍵不存在時提供預設值:

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

    要為每個鍵提供預設值,請使用dict.setdefault() 在每個作業上:

    d = {}
    
    for i in range(100):
        d[i % 10] = d.setdefault(i % 10, 0) + 1

    ...或更好,使用 defaultdict< /a># 來自 #collections 模組:

    from collections import defaultdict
    
    d = defaultdict(int)
    
    for i in range(100):
        d[i % 10] += 1

    回覆
    0
  • 取消回覆