W3docs

Diccionarios de Python: Acceso a Elementos

Aprende todas las formas de acceder a elementos de diccionarios Python: notación de corchetes, get(), keys(), values(), items() y pruebas de pertenencia.

Los diccionarios de Python almacenan datos como pares clave-valor. Saber cómo recuperar esos valores — y qué ocurre cuando falta una clave — es la base para trabajar con cualquier diccionario. Este capítulo cubre todas las técnicas estándar de acceso: notación de corchetes, el método .get(), iteración con .keys(), .values() e .items(), y la comprobación de pertenencia con in.

Notación de Corchetes

La forma más directa de recuperar un valor es escribir el nombre del diccionario seguido de la clave entre corchetes.

Acceder al valor de un diccionario mediante una clave

python— editable, runs on the server

Python busca 'Bob' en la tabla hash y devuelve su valor en tiempo O(1), independientemente de cuántas claves contenga el diccionario.

KeyError cuando la clave no existe

Si la clave no existe, Python lanza un KeyError y detiene la ejecución.

ages = {'Alice': 27, 'Bob': 34, 'Charlie': 45}

print(ages['Dave'])  # KeyError: 'Dave'

Siempre gestiona este caso — ya sea comprobando la pertenencia primero (véase la sección del operador in más abajo) o usando .get() en su lugar.

El Método .get()

.get(key) devuelve el valor de key si existe, y None en caso contrario — no se lanza ninguna excepción.

Usar .get() para acceder de forma segura a una clave del diccionario

python— editable, runs on the server

Proporcionar un valor por defecto

Pasa un segundo argumento a .get() para recibir un valor alternativo en lugar de None:

colors = {'apple': 'red', 'banana': 'yellow', 'grape': 'purple'}

color = colors.get('orange', 'unknown')
print(color)  # unknown

Esta es la forma idiomática de acceder a una clave que puede o no estar presente sin envolver el código en un bloque try/except.

Comprobación de Pertenencia con in

Usa el operador in para verificar si una clave existe antes de acceder a ella:

ages = {'Alice': 27, 'Bob': 34, 'Charlie': 45}

if 'Alice' in ages:
    print(ages['Alice'])  # 27

print('Dave' in ages)   # False
print('Bob' in ages)    # True

in comprueba solo las claves, no los valores. Se ejecuta en tiempo O(1) porque los diccionarios están basados en tablas hash.

Acceder a Todas las Claves, Valores y Elementos

Los diccionarios de Python exponen tres objetos de vista que permiten iterar o inspeccionar su contenido sin construir una lista separada.

.keys() — todas las claves

colors = {'apple': 'red', 'banana': 'yellow', 'grape': 'purple'}

print(colors.keys())
# dict_keys(['apple', 'banana', 'grape'])

for fruit in colors.keys():
    print(fruit)
# apple
# banana
# grape

.values() — todos los valores

colors = {'apple': 'red', 'banana': 'yellow', 'grape': 'purple'}

print(colors.values())
# dict_values(['red', 'yellow', 'purple'])

for color in colors.values():
    print(color)
# red
# yellow
# purple

.items() — pares clave-valor

.items() devuelve cada entrada como una tupla (key, value). El desempaquetado de tuplas hace que esta sea la vista más útil para la mayoría de las tareas de iteración:

colors = {'apple': 'red', 'banana': 'yellow', 'grape': 'purple'}

for fruit, color in colors.items():
    print(f'{fruit} is {color}')
# apple is red
# banana is yellow
# grape is purple

Los objetos de vista son dinámicos — reflejan el estado actual del diccionario. Si añades o eliminas una clave después de crear una vista, esta se actualiza automáticamente.

Acceder a Elementos en un Diccionario Anidado

Cuando el valor de un diccionario es a su vez un diccionario, encadena corchetes (o llamadas a .get()) para llegar al valor interior.

Acceder a valores en un diccionario anidado

python— editable, runs on the server

Para un acceso más seguro a través de varios niveles, encadena llamadas a .get():

title = library.get('book4', {}).get('title', 'Not found')
print(title)  # Not found

Consulta el capítulo de Diccionarios Anidados para un tratamiento más profundo de las estructuras de datos multinivel.

Elegir el Método de Acceso Correcto

SituaciónEnfoque recomendado
La clave está garantizada que existed[key] — claro y rápido
La clave puede no existir, None es aceptabled.get(key)
La clave puede no existir, se necesita un valor alternativod.get(key, default)
Comprobar antes de accederif key in d: d[key]
Iterar todas las entradasfor k, v in d.items()

Qué Viene Después

Una vez que puedes leer valores de un diccionario, los siguientes pasos naturales son:

Práctica

Práctica
In Python, which principles are applied to access items from a list or a dictionary?
In Python, which principles are applied to access items from a list or a dictionary?
Was this page helpful?