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