2013-09-06 11 views
5

Questo codice non è male, ma voglio sapere come buoni programmatori potranno scrivere il codiceCome impostare un valore in un dizionario in termini di python se è None?

if count.get('a') is None: 
    count['a'] = 0 
+1

Cosa succede se si inserisce intenzionalmente 'None' come valore per' 'a''? –

+0

Non penso che Pythonic possa impostare valori per le chiavi nei dizionari come 'None'. Perché se lo fai, allora ciò può sovrapporsi al valore di ritorno di 'get()' essendo 'None' che potrebbe causare bug e confusione non necessari. Meglio impostare il valore su '0' o qualche tipo di ordinamento fittizio di tipo zero non-None. – Shashank

+0

Giusto per chiarire questo: vuoi tenere conto del caso in cui il conteggio ['a'] è in effetti 'Nessuno', o quando il conteggio ['a'] non è definito? O entrambi? –

risposta

18

È possibile utilizzare dict.setdefault:

count.setdefault('a', 0) 

aiuto su dict.setdefault:

>>> print dict.setdefault.__doc__ 
D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D 
5

setdefault è la migliore risposta, ma per la cronaca, il modo Pythonic per verificare la presenza di una chiave in un dict utilizza la parola chiave in:

if 'a' not in count: 
    count['a'] = 0 
Problemi correlati