2010-10-02 9 views

risposta

393
if key in array: 
    # do something 

Array associativi sono chiamati dizionari in Python e si può imparare di più su di loro in the stdtypes documentation.

+27

E, assicurati di inserire il nome della chiave tra virgolette se si tratta di una stringa. – JAL

+1

Questo genera un errore TypeError: gli indici stringa devono essere interi per me. – starbeamrainbowlabs

+1

come si nega questo? se non in serie? – astroanu

46

un altro metodo è has_key() (se ancora utilizzando 2.X)

>>> a={"1":"one","2":"two"} 
>>> a.has_key("1") 
True 
+17

'has_key' è deprecato, rimosso in python 3 e metà veloce come Python 2 – aaronasterling

+0

sì, ma non in 2.X. – ghostdog74

+7

sì è deprecato in 2.xe sì è mezzo veloce in python 2.x. – aaronasterling

32

Se si desidera recuperare il valore della chiave se esiste, è anche possibile utilizzare

try: 
    value = a[key] 
except KeyError: 
    # Key is not present 
    pass 

Se desidera recuperare un valore predefinito quando la chiave non esiste, utilizzare value = a.get(key, default_value). Se si desidera impostare il valore predefinito allo stesso tempo nel caso in cui la chiave non esista, utilizzare value = a.setdefault(key, default_value).

+8

Va notato che si dovrebbe usare solo il caso 'try/except' se si prevede che la chiave sarà presente avvicinandosi al 100% delle volte. altrimenti, "se in" è più bello e più efficiente. +1 per menzionare le altre possibilità. – aaronasterling

Problemi correlati