Pirms atslēgas vērtības atjaunināšanas vēlējos pārbaudīt, vai vārdnīcā pastāv atslēga. Es uzrakstīju šādu kodu:
if 'key1' in dict.keys():
print "blah"
else:
print "boo"
Manuprāt, tas nav labākais veids, kā izpildīt šo uzdevumu. Vai ir kāds labāks veids, kā pārbaudīt atslēgas atrašanu vārdnīcā?
Jums nav jāizsauc atslēgas:
if 'key1' in dict:
print "blah"
else:
print "boo"
Tas būs daudz ātrāk, jo tiek izmantota vārdnīcas šifrēšana, nevis lineārā meklēšana, ko veiktu, izsaucot atslēgas.
Tā vietā es ieteiktu izmantot setdefault
metodi. Izklausās, ka tā darīs visu, ko vēlaties.
>>> d = {'foo':'bar'}
>>> q = d.setdefault('foo','baz') #Do not override the existing key
>>> print q #The value takes what was originally in the dictionary
bar
>>> print d
{'foo': 'bar'}
>>> r = d.setdefault('baz',18) #baz was never in the dictionary
>>> print r #Now r has the value supplied above
18
>>> print d #The dictionary's been updated
{'foo': 'bar', 'baz': 18}