2010-10-02 23 views

Respuesta

393
if key in array: 
    # do something 

matrices asociativas se llaman diccionarios en Python y se puede aprender más acerca de ellos en the stdtypes documentation.

+27

Y, asegúrese de poner el nombre de la tecla entre comillas si se trata de una cadena. – JAL

+1

Esto arroja un error 'TypeError: string indices must be integers' para mí. – starbeamrainbowlabs

+1

¿cómo lo niegas? si no está en el arreglo? – astroanu

46

otro método es has_key() (si todavía está usando 2.X)

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

'has_key' está en desuso, eliminado en python 3 y la mitad de rápido en python 2 – aaronasterling

+0

sí, pero no en 2.X. – ghostdog74

+7

sí, está en desuso en 2.x y sí es la mitad de rápido en python 2.x. – aaronasterling

32

Si desea recuperar el valor de la clave si es que existe, también se puede utilizar

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

Si desea recuperar un valor predeterminado cuando la clave no existe, use value = a.get(key, default_value). Si desea establecer el valor predeterminado al mismo tiempo en caso de que la clave no exista, utilice value = a.setdefault(key, default_value).

+8

Debe tenerse en cuenta que solo debe usar el caso 'try/except' si espera que la clave esté presente aproximadamente el 100% del tiempo. de lo contrario, 'if in' es más bonito y más eficiente. +1 por mencionar las otras posibilidades. – aaronasterling

Cuestiones relacionadas