recherche

Maison  >  Questions et réponses  >  le corps du texte

Vérifier si une clé donnée existe déjà dans le dictionnaire

Je souhaite tester si une clé existe dans le dictionnaire avant de mettre à jour sa valeur. J'ai écrit le code suivant :

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

Je pense que ce n'est pas la meilleure façon d'accomplir cette tâche. Existe-t-il une meilleure façon de tester les clés d’un dictionnaire ?

P粉489081732P粉489081732415 Il y a quelques jours822

répondre à tous(2)je répondrai

  • P粉674876385

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

    Utiliser directementkey in my_dict而不是key in my_dict.keys() :

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

    Ce sera plus rapide car il utilise un hachage O(1) du dictionnaire, plutôt que d'effectuer une recherche linéaire O(n) sur la liste des clés.

    répondre
    0
  • P粉914731066

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

    Y a-t-il une clé dans

    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")

    Utilisez dict.get() pour fournir une valeur par défaut lorsque la clé n'existe pas :

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

    Pour fournir une valeur par défaut pour chaque clé, utilisez dict.setdefault() sur chaque tâche :

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

    ...ou mieux encore, utilisez le module defaultdict< /a> 来自 collections :

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

    répondre
    0
  • Annulerrépondre