¿Cómo puedo comprobar si existe una clave en un diccionario? [duplicate]

3 minutos de lectura

avatar de usuario
aneurisma

Digamos que tengo una matriz asociativa así: {'key1': 22, 'key2': 42}.

¿Cómo puedo comprobar si key1 existe en el diccionario?

  • En python 3 solo puedes usar 'key1' in {'key1': 22, 'key2': 42}.keys() referirse a keys() método en Diccionario

    – Comer en Joes

    10 de febrero de 2020 a las 20:13

avatar de usuario
Rafael Rawicki

if key in array:
  # do something

Las matrices asociativas se denominan diccionarios en Python y puede obtener más información sobre ellas en la documentación de tipos estándar.

  • Y asegúrese de poner el nombre de la clave entre comillas si es una cadena.

    – JAL

    2 de octubre de 2010 a las 11:04

  • @astroanu if key not in array

    – Spencer madera

    6 de agosto de 2015 a las 14:38

  • ¿De dónde viene la palabra “matriz” en esta respuesta?

    – Ray Salemi

    29 de marzo de 2017 a las 17:19

  • Como van las respuestas aceptadas, esta es horrible. De ninguna manera responde la pregunta y no es más que un enlace condescendiente a la documentación. Es triste que Google clasifique esto tan alto.

    – cstrutton

    12 de julio de 2017 a las 0:59

  • @cstrutton Sugiera mejoras. En el momento de escribir esta respuesta, no sentí que fueran necesarios más detalles.

    – Rafael Rawicki

    12 de julio de 2017 a las 11:13

Si desea recuperar el valor de la clave si existe, también puede usar

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

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

  • Cabe señalar que sólo debe utilizar el try/except caso si espera que la clave esté presente acercándose al 100% del tiempo. de lo contrario, if in es más bonito y más eficiente. +1 por mencionar las otras posibilidades.

    – aaronasterling

    2 de octubre de 2010 a las 13:37

  • Interesante, recuerdo que leí en alguna parte de los documentos oficiales que es mejor pedir perdón que permiso…

    – Yannic Hamann

    15 de enero de 2020 a las 6:36

  • desde el punto de vista del rendimiento, probar/esperar es mejor si se trata de dict con muchas teclas

    –Avo Asatryan

    3 de marzo de 2020 a las 7:52

avatar de usuario
fantasmaperro74

Otro método es has_key() (si todavía usa Python 2.X):

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

  • has_key está obsoleto, eliminado en python 3 y la mitad de rápido en python 2

    – aaronasterling

    2 de octubre de 2010 a las 11:10

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

    – aaronasterling

    2 de octubre de 2010 a las 11:44

  • en desuso se aplica a todo el código nuevo. una vez que esté en desuso, no lo use más.

    – aaronasterling

    2 oct 2010 a las 12:40

  • la forma ‘key in dict’ existe desde 2.2

    – Tim W.

    2 de octubre de 2010 a las 13:01

  • Podríamos seguir y seguir sobre esto, el hecho es que sigue siendo una opción alternativa para <= 2.5.

    – ghostdog74

    2 oct 2010 a las 14:15

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad