Python lancerà una KeyError
se la chiave non esiste nel dizionario, quindi non è possibile scrivere il codice nello stesso modo del tuo JavaScript. Tuttavia, se stai operando specificamente con dicts come nel tuo esempio, c'è una bella funzione mydict.get('key', default)
che tenta di ottenere la chiave dal dizionario e restituisce il valore predefinito se la chiave non esiste.
Se si desidera che il valore predefinito sia None
non è necessario passare esplicitamente il secondo argomento.
A seconda di ciò che contiene il dettato e della frequenza con cui si prevede di accedere alle chiavi non impostate, è inoltre possibile che si desideri utilizzare lo defaultdict
dal pacchetto collections
. Questo prende una fabbrica e la usa per restituire nuovi valori dal metodo magico __missing__
ogni volta che si accede a una chiave che non è stata altrimenti impostata in modo esplicito. È particolarmente utile se ci si aspetta che il tuo dict contenga un solo tipo.
from collections import defaultdict
foo = defaultdict(list)
bar = foo["unset"]
# bar is now a new empty list
N.B. i documenti (per 2.7.13) affermano che se non si passa un argomento a defaultdict
verrà restituito None
per le chiavi non impostate. Quando l'ho provato (in 2.7.10, è proprio quello che mi è capitato di aver installato), che non ha funzionato e ho ricevuto uno KeyError
. YMMV.In alternativa, puoi semplicemente usare una lambda: defaultdict(lambda: None)
Cosa intendi con "se esiste"? Il nome 'some_var' potrebbe non essere definito in alcuni casi? –
L'ho appena modificato - per chiarire - sto cercando di verificare l'esistenza di una chiave in un dizionario essenzialmente –
Scommetto che questo è già stato chiesto ... –