Clase 08: Sets y Diccionarios
Sets
Es una colección de elementos desordenados y mutables de carácter ÚNICO, es decir, no permite elementos repetidos.
# Set
set1 = {1, 2, 3, 4, 5, 6, "marco"}
print(set1) # {1, 2, 3, 4, 5, 6, 'marco'}
print(set1) # {'marco', 1, 2, 4, 3, 5, 6}
Puedo convertir una lista a un set. Si hay valores duplicados se eliminarán
# Lista
lista = [1, 2, 3, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6]
print(lista) # [1, 2, 3, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6]
# Convertir lista a set
set1 = set(lista)
print(set1) # {1, 2, 3, 4, 5, 6}
Agregar elementos:
# Set
set1 = {1, 2, 3, 4, 5, 6, "marco"}
set1.add("Ana")
print(set1) # {1, 2, 3, 4, 5, 6, 'marco', 'Ana'}
Eliminar elementos: remove() y discard()
# Set
set1 = {1, 2, 3, 4, 5, 6, "marco", "Ana"}
set1.remove("Ana")
# Si el elemento no existe, se produce un error
print(set1) # {1, 2, 3, 4, 5, 6, 'marco'}
set1.discard("Ana")
# Si el elemento no existe, no se produce un error
print(set1) # {1, 2, 3, 4, 5, 6, 'marco'}
Operaciones con sets
# Set
set1 = {1, 2, 3, 4, 5, 6}
set2 = {"marco", "Ana", 2}
# Union entre 2 sets (se eliminan valores repetidos)
# Se puede escribir: set1 | set2
print(set1.union(set2)) # {1, 2, 3, 4, 5, 6, 'marco', 'Ana'}
# Intersección entre 2 sets
# solo persisten los valores que comparten ambos sets
# Se puede escribir: set1 & set2
set3 = set1.intersection(set2)
print(set3) # {2}
# Diferencia entre 2 set
# devuelve los valores dentro del primer set que no se repitan en el segundo.
# Se puede escribir: set1 - set2
set4 = set1.difference(set2)
print(set4) # {1, 2, 3, 4, 5, 6, 'marco', 'Ana'}
# Diferencia simétrica entre 2 set
# devuelve los valores que no se repitan en ambos sets
# Se puede escribir: set1 ^ set2
print(set1.symmetric_difference(set2)) # {1, 3, 4, 5, 6, 'marco', 'Ana'}
Diccionarios
Es una colección de elementos ordenados por pares (clave-valor). No tiene un orden fijo. Las claves son únicas e inmutables. Los valores pueden ser de cualquier tipo de dato.
# Diccionario
diccionario = {"nombre": "Marco", "edad": 25, "ciudad": "Puerto Madryn"}
print(diccionario) # {"nombre": "Marco", "edad": 25, "ciudad": "Puerto Madryn"}
automovil = {
"marca": "Toyota",
"modelo": "Corolla",
"año": 2022,
"color": "Blanco",
"precio": 25000,
"es_nuevo": True
}
print(automovil)
Acceso a elementos
# Diccionario
diccionario = {"nombre": "Marco", "edad": 25, "ciudad": "Puerto Madryn"}
print(diccionario["nombre"])
print(diccionario["edad"])
print(diccionario["ciudad"])
Agregar elementos
# Diccionario
diccionario = {"nombre": "Marco", "edad": 25, "ciudad": "Puerto Madryn"}
diccionario["apellido"] = "Romero"
print(diccionario)
Eliminar elementos
# Diccionario
diccionario = {"nombre": "Marco", "edad": 25, "ciudad": "Puerto Madryn"}
# pop() elimina un elemento por clave
diccionario.pop("edad")
print(diccionario)
# del() elimina un elemento por clave
diccionario.del("ciudad")
print(diccionario)
Actualizar elementos
# Diccionario
diccionario = {"nombre": "Marco", "edad": 25, "ciudad": "Puerto Madryn"}
diccionario["edad"] = 26
print(diccionario)
Metodos
# Diccionario
diccionario = {"nombre": "Marco", "edad": 25, "ciudad": "Puerto Madryn"}
# keys() devuelve las claves del diccionario
print(diccionario.keys())
# values() devuelve los valores del diccionario
print(diccionario.values())
# items() devuelve las claves y valores del diccionario
print(diccionario.items())
# get() devuelve el valor de una clave si existe,
# si no devuelve None, no un error
print(diccionario.get("nombre"))
# update() actualiza un elemento por clave
diccionario.update({"edad": 26})
print(diccionario)
Actividades
1. Eliminar duplicados
Dada la lista:
numeros = [1, 2, 2, 3, 4, 4, 5]
- Convertirla en un set
- Mostrar el resultado
- Indicar cuántos elementos únicos hay
2. Operaciones con sets
Dada las listas grupo_a = [1, 2, 3, 4] y grupo_b = [3, 4, 5, 6]
- Convertir ambas a sets
- Mostrar:
- Unión
- Intersección
- Diferencia (A - B)
3. Diccionarios: acceso y modificación
Dado el diccionario:
alumno = {
"nombre": "Juan",
"edad": 16,
"nota": 7
}
- Mostrar el nombre
- Cambiar la nota a 8
- Agregar una nueva clave:
"curso": "5°" - Mostrar el diccionario completo
4. Diccionarios y listas
Crear un diccionario que represente un alumno con:
- nombre
- una lista de 3 notas
Luego:
- Mostrar el nombre
- Mostrar la lista de notas
- Calcular el promedio de las notas
- Mostrar el promedio