Python – Consultando los valores de un diccionario

Objetivo: aprender diversas técnicas para consultar los valores de un diccionario en Python.

En esta tercera entrega dedicada a los diccionarios mostraremos cómo consultar los valores que contienen. Ya sabemos agregar o eliminar elementos (pares clave-valor), pero, ¿cómo realizamos consultas específicas?

El diccionario con el que trabajaremos hoy contiene información sobre unos personajes muy peculiares…

>>> gente = {'Pipi':'Calzaslargas', 'Bob':'Esponja',
   'Laura':'Ingalls', 'Sherlock':'Holmes'}

Comencemos determinando si nuestro diccionario contiene una clave concreta:

>>> 'Sherlock' in gente
True
>>> 'Dan' in gente
False

Hemos utilizado el operador in, un viejo conocido ya, para determinar la pertenencia. Podemos chequear, a su vez, la no pertenencia:

>>> 'Dan' not in gente
True

Es importante comprender que este uso sólo comprueba claves, pero no los valores correspondientes, como puedes apreciar en la siguiente instrucción:

>>> 'Esponja' in gente
False

En un próximo artículo aprenderemos métodos que nos permitirán obtener secuencias con las claves, los valores o con ambos, pero primero has de asegurarte de interiorizar bien esto.

Ya sabemos si una clave existe en un diccionario. Nuestra siguiente pregunta es: ¿cómo conocemos el valor que tiene asociado?

La forma más simple de extraer el valor de una determinada clave es utilizar la sintaxis siguiente:

diccionario[clave]

Consultemos qué valor tiene asignado la clave ‘Laura’:

>>> gente['Laura']
'Ingalls'

Si tratamos de consultar el valor de una clave inexistente tendríamos un serio problema:

>>> gente['Pedro']
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    gente['Pedro']
KeyError: 'Pedro'

Se produce un error y el programa se aborta. Más adelante, cuanto tratemos las excepciones, veremos el modo general que provee Python para controlar este tipo de errores, pero ahora veremos técnicas asociadas a los diccionarios para resolver este problema concreto.

Una forma obvia de gestionar este fallo sería realizar una comprobación de pertenencia antes de tratar de consultar el valor:

>>> if 'Pedro' in gente:
  print(gente['Pedro'])
else:
  print('Esta clave no existe')

  
Esta clave no existe

Pero disponemos de una manera más elegante. Deja que te presente el método get().

>>> gente.get('Laura')
'Ingalls'

Como ves, es lo mismo que haber hecho:

>>> gente['Laura']
'Ingalls'

Pero tiene una importante diferencia. Prueba ahora esto:

>>> gente.get('Pedro')

No devuelve nada, puesto que la clave no existe, pero, al menos, no provoca un error.

Y aún hay más: podemos indicar qué valor queremos que se devuelva para el caso en que la clave no exista:

diccionario.get(clave, valor_por_defecto)

>>> gente.get('Bugs', 'Esta clave no existe')
'Esta clave no existe'

Y, como decía un viejo amigo: That’s all folks!

Javier Montero Gabarró


Python – Consultando los valores de un diccionario


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta


Consulta el índice completo de artículos relacionados con Python.

3 opiniones en “Python – Consultando los valores de un diccionario”

Deja un comentario