Diccionarios Python: llaves, valores e items

Clase 24 de 49Curso Práctico de Python: Creación de un CRUD

Resumen

Aprende a dominar los diccionarios en Python con ejemplos claros y directos. Aquí verás cómo crear, acceder e iterar estas estructuras de datos basadas en llaves y valores, cuándo aparece un KeyError y cómo evitarlo con get. Además, aprovecharás métodos como keys, values, items y la función dir para explorar y practicar.

¿Qué es un diccionario en Python y en qué se diferencia de una lista?

Los diccionarios son una asociación entre llaves y valores. A diferencia de una lista, donde el acceso es por índice entero, en un diccionario la llave puede ser casi cualquier objeto. Normalmente verás strings por claridad.

  • Es una estructura llave-valor muy flexible.
  • Similar a un diccionario de la RAE: palabra como llave, definición como valor.
  • Acceso por llave, no por posición numérica.

¿Por qué las llaves no son solo números?

Porque un diccionario no depende del orden, sino de la identificación semántica de cada elemento. Usar strings hace el código más explícito y legible.

¿Qué ejemplo mental ayuda a entenderlo?

Piensa en la RAE: para cada palabra hay una definición. Lo mismo en Python: llave → valor. Incluso podrías modelar algo tan grande como un repertorio de definiciones.

¿Cómo crear y acceder a un diccionario en Python?

Puedes inicializar un diccionario de dos maneras: con notación literal usando llaves, o con la función global dict. Luego, agrega pares llave-valor y accede por llave.

¿Cómo inicializar con notación literal o función dict?

# notación literal
rae = {}

# función global
otra = dict()

Ahora añade llaves y valores en el ejemplo tipo RAE:

rae["pizza"] = "la comida más deliciosa del mundo"
rae["pasta"] = "la comida más sabrosa de Italia"
print(rae)
# {'pizza': 'la comida más deliciosa del mundo', 'pasta': 'la comida más sabrosa de Italia'}

Accede por llave existente:

print(rae["pizza"])  # la comida más deliciosa del mundo
print(rae["pasta"])  # la comida más sabrosa de Italia

¿Qué pasa con llaves inexistentes y cómo evitar errores?

Si accedes a una llave que no existe, aparece KeyError y, si no lo manejas, el programa termina. Para evitarlo, usa get con un valor por defecto, por ejemplo None.

# acceso directo: produce KeyError si la llave no existe
# rae["helado"]  # KeyError: 'helado'

# acceso seguro con get
a = rae.get("helado", None)
print(a)  # None

a = rae.get("pizza", None)
print(a)  # la comida más deliciosa del mundo

Puntos clave: - KeyError indica que la llave no existe. - get evita el error y retorna un valor por defecto. - Usar None comunica “no hay nada” sin romper la ejecución.

¿Cómo iterar un diccionario con keys, values e items?

Para recorrer un diccionario, elige si quieres iterar sobre llaves, valores o sobre ambos. Los métodos keys, values e items facilitan cada caso.

¿Cómo obtener llaves, valores e ítems?

rae.keys()    # lista de llaves
rae.values()  # lista de valores
rae.items()   # lista de tuplas (llave, valor)

¿Cómo recorrer con for de forma clara?

# recorrer llaves
for key in rae.keys():
    print(key)

# recorrer valores
for value in rae.values():
    print(value)

# recorrer llave y valor
for key, value in rae.items():
    print(key, value)

Buenas prácticas: - Nombra las variables internas según su contenido: key, value. - Elige keys, values o items según lo que necesites imprimir o procesar.

¿Cómo descubrir más métodos disponibles?

Apóyate en dir para listar los métodos y atributos del objeto diccionario. Es una forma directa de explorar sin memorizar todo.

print(dir(rae))

Ideas para fortalecer habilidades: - Usa dir a diario para aprender métodos disponibles sin sobrecargar la memoria. - Experimenta con get y diferentes valores por defecto. - Practica iteraciones con keys, values e items según el caso de uso.

¿Probaste otra combinación de llaves y valores o algún método interesante del diccionario? Comparte tus pruebas y hallazgos en los comentarios.