suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Überprüfen Sie, ob ein bestimmter Schlüssel bereits im Wörterbuch vorhanden ist

Ich möchte testen, ob ein Schlüssel im Wörterbuch vorhanden ist, bevor ich seinen Wert aktualisiere. Ich habe den folgenden Code geschrieben:

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

Ich denke, dass dies nicht der beste Weg ist, diese Aufgabe zu erfüllen. Gibt es eine bessere Möglichkeit, Schlüssel in einem Wörterbuch zu testen?

P粉489081732P粉489081732415 Tage vor821

Antworte allen(2)Ich werde antworten

  • 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 )对键列表进行线性搜索。

    Antwort
    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

    Antwort
    0
  • StornierenAntwort