Ir al contenido principal

10. Estructuras de datos: diccionarios.

Unidad 10

Estructuras de datos: Diccionario

Una estructura de datos muy utilizada en Python es el diccionario, o 'dict'. Se trata de pares de key-values o claves y sus valores, asociados, que guardan la información en la estructura.

datos = {"a": 1, "b": 2, "c": 3}

Acceder a los elementos

Obtenemos los valores en un diccionario, accediendo por su clave:

x = datos["a"]

También podemos usar el método get():

x = datos.get("a")

Actualizar datos

Podemos actualizar los datos de un determinado elemento, refiriéndolo por su clave:

datos["b"] = 5

Recorrer todos los datos de un diccionario

Para iterar los elementos de un diccionario, los recorremos utilizando la estructura for. Cuando pasamos por sus elementos de esta manera, el elemento que obtenemos es la clave.

for x in datos:
    print(x)

Para iterar los valores, debemos hacer:

for x in datos:
    print(datos[x])

O también:

for x in datos.values():
    print(x)

También tenemos la posibilidad, muy útil a veces, de obtener ambos valores clave y valor en cada iteración:

for x, y in datos.items():
    print(x, y)

Chequear la existencia de una clave

Esta utilidad es muy importante, ya que si queremos acceder a una clave que no existe obtendremos un error.

print(datos["e"])

if "c" in datos:
    print("La clave 'c' existe en el diccionario datos.")

Agregando elementos

Para agregar datos al diccionario, simplemente referenciamos la nueva clave asignándole un valor:

datos["d"] = 10

Eliminar un elemento

Al igual que con las listas, para eliminar elementos hay varias formas:

datos.pop("b")       # Elimina el elemento indicado
datos.popitem()      # Elimina el último elemento
del datos["c"]       # Elimina el elemento indicado
datos.clear()        # Vacía por completo el diccionario
del datos            # Elimina todo el objeto diccionario

Copiar diccionarios

Con los tipos de datos que conocíamos hasta el momento, podíamos copiar un elemento simplemente asignándolo a uno nuevo. Pero con los diccionarios, esto no funciona, ya que solamente estaríamos copiando su referencia. Para copiarlo completamente, debemos utilizar el método copy().

nuevoDicc = datos.copy()
print(nuevoDicc)

Ejercicios

1- Dada la siguiente estructura inicial de un programa Python, completar el código necesario para mostrar los elementos, agregar uno nuevo, modificar uno existente, eliminar uno y para salir. Como clave del diccionario utilizaremos el nombre del libro, y como valor, el nombre de la persona a quien se lo prestamos.

print("Archivo de libros prestados")
salir = False

while not salir:
    print("Elija la función a ejecutar:")
    print("1: Mostrar datos")
    print("2: Agregar elemento")
    print("3: Modificar elemento")
    print("4: Eliminar elemento")
    print("5: Salir")
    opcion = input("Elección: ")
    libros = {}
    if opcion == "1":

    elif opcion == "2":

    elif opcion == "3":

    elif opcion == "4":

    elif opcion == "5":

2- Idealmente, al realizar el ejercicio anterior, cada parte del código podemos agregarlo como una nueva función de forma que el código quede más ordenado y legible.