Diccionarios

# Un diccionario es una estructura de datos que se basa en
# un par clave, valor
# Es decir, tenemos una serie de elementos identificados por una clave
# y para cada clave tenemos un valor

# lista de alumnos y una lista de notas
alumnos = ["Ana", "Eva", "Pep1"]
notas = [6, 7, 8]

# para definir un diccionario utilizo las llaves {}
# conjunto de pares 'clave' y 'valor'
alumno1 = {
    "nombre": "Ana",  # clave es 'nombre' y el valor 'Ana'
    "nota": 6  # clave es 'nota' y el valor 6
}

print(alumno1)

# como accedo yo a los valores inviduales. mediante la clave

print(alumno1["nombre"])
print(alumno1["nota"])

print(alumno1.get("nota"))
print(alumno1.get("notas", 0))  # si la clave no existe podemos tener un valor por defecto

alumno1["email"] = "ana@ana.com"
print(alumno1)
alumno1["nota"] = 9  # cambio el valor de esa clave
print(alumno1)

alumno2 = {"nombre": "Eva",
           "nota": 8,
           "nombre": "Pep"  # Las claves no pueden estar repetidas. En este caso se sustituye el valor anterior
           }
print(alumno2)

# eliminar elementos del diccionario con 'pop'

alumno1.pop("email")  # elimina la clave 'email'

print(alumno1)

alumno1.popitem()  # elimina la última clave

print(alumno1)

# En python tenemos 'del' para eliminar cualquier variable

del alumno1["nombre"]  # nos elimina la clave 'nombre'

print(alumno1)

del alumno1  # nos dejaría si esta variable

alumno2.clear()  # vaciar un diccionario

alumno2 = {"nombre": "Eva",
           "nota": 8,
           "Apellido": "Pi",
           "email": "eva@eva.com"
           }
# recorrer un diccionario

for elemento in alumno2:
    print(elemento)  # recorre las claves del diccionario

# Con esto recorro tanto las claves como los valores
for elemento in alumno2:
    print(elemento, alumno2[elemento],alumno2.get(elemento))  # recorre las claves del diccionario

# Con esto recorro solo los valores
for elemento in alumno2.values():
    print(elemento)  # recorre solo los valores

print(alumno2.keys())

# recorro los items que son tuplas y la desempaqueto y la asigno a una clave y un valor
for clave, valor in alumno2.items():
    print(clave, valor)

print(alumno2.items())

# Copiar un diccionario igual que una lista, con copy

alumno3 = alumno2.copy()

alumno3["nombre"] = "Juan"
print(alumno3)

# Comprobar que la clave exista
if "nombre" in alumno3:
    print(alumno3["nombre"])

# Comprobar que el valor existe
if "Juan" in alumno3.values():
    print("Juan es un valor del diccionario")
    

Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos