web-dev-qa-db-fra.com

Les clés de contrôle existent dans python dict

Ci-dessous se trouve la sortie du fichier:

apples:20
orange:100

Ci-dessous le code:

d = {}
with open('test1.txt') as f:
    for line in f:
        if ":" not in line:
                continue
        key, value = line.strip().split(":", 1)
        d[key] = value

for k, v in d.iteritems():
    if k == 'apples':
         v = v.strip()
         if v == 20:
             print "Apples are equal to 20"
         else:
             print "Apples may have greater than or less than 20"   
    if k == 'orrange':
         v = v.strip()
         if v == 20:
            print "orange are equal to 100"
         else:
            print "orange may have greater than or less than 100"

Dans le code ci-dessus, je suis écrit "si k == 'orrange':", mais son "orange" correspond au fichier de sortie.

Dans ce cas, je dois imprimer la clé orrange n’existe pas dans le fichier de sortie. Aidez-moi, s'il vous plaît. Comment faire ça

17
pioltking

Utilisez le mot clé in.

if 'apples' in d:
    if d['apples'] == 20:
        print('20 apples')
    else:
        print('Not 20 apples')

Si vous souhaitez obtenir la valeur uniquement si la clé existe (et éviter une exception si vous ne l'obtenez pas), vous pouvez utiliser la fonction get d'un dictionnaire en transmettant une valeur par défaut facultative: le deuxième argument (si vous ne le passez pas, il retourne None à la place):

if d.get('apples', 0) == 20:
    print('20 apples.')
else:
    print('Not 20 apples.')
45