Introducci贸n

1

El Zen de Python

Conjuntos

2

Sets

3

Modificando conjuntos

4

Operaciones con conjuntos

5

Playgrounds: Elimina elementos duplicados usando conjuntos

Comprehensions

6

List Comprehension

7

Dictionary Comprehension

8

Dictionary Comprehension: condition

9

Playgrounds: Crea una lista usando List Comprehension

10

Lists vs. Tuples vs. Sets

Funciones

11

Funciones

12

Funciones: return

13

Par谩metros por defecto y m煤ltiples returns

14

El scope

15

Refactor game

16

Playgrounds: Tienda de Tecnolog铆a

17

Funciones an贸nimas: lambda

18

Higher order function: una funci贸n dentro de otra funci贸n

19

Map

20

Map con diccionarios

21

Reto: map con inmutabilidad

22

Playgrounds: Multiplica todos los elementos por dos

23

Filter

24

Playgrounds: Retorna solo palabras de 4 letras y m谩s

25

Reduce

M贸dulos

26

M贸dulos

27

Mis propios m贸dulos

28

M贸dulos como scripts: __name__ y __main__

29

Paquetes

30

Playgrounds: Calcular la suma de todas las compras

Manipulaci贸n de archivos y errores

31

Iterables

32

Errores en Python

33

Manejo de excepciones

34

Playgrounds: Captura la excepci贸n: ZeroDivisionError

35

Leer un archivo de texto

36

Escribir en un archivo

37

Leer un CSV

38

Playgrounds: Lee un CSV para calcular el total de gastos

Gr谩ficas en Python

39

Creando una gr谩fica

40

Reto: graficando la poblaci贸n de un pa铆s

41

Reto: graficando la poblaci贸n mundial

Pr贸ximos pasos

42

隆Conoce otros proyectos de este curso!

43

Reconoce tu proceso y certif铆cate

44

Toma el Curso de PIP y Entornos Virtuales con Python

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Modificando conjuntos

3/44
Recursos

Aportes 74

Preguntas 12

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Funciones de set:

  • add(): A帽ade un elemento.

  • update(): A帽ade cualquier tipo de objeto iterable como: listas, tuplas.

  • discard(): Elimina un elemento y si ya existe no lanza ning煤n error.

  • remove(): Elimina un elemento y si este no existe lanza el error 鈥渒eyError鈥.

  • pop(): Nos devuelve un elemento aleatorio y lo elimina y si el conjunto est谩 vac铆o lanza el error 鈥渒ey error鈥.

  • clear(): Elimina todo el contenido del conjunto.

Para ordenarlos alfab茅ticamente, se puede usar la funci贸n sorted()
Lo dejo por si a alguien le surgi贸 esa duda.

set_countries = {"col", "bol", "mex"}
print(sorted(set_countries))

CRUD en Sets

set_countries = {'col', 'mex', 'bol'}


# conocer el tama帽o del conjunto
size = len(set_countries)
print(size) # 3

print('col' in set_countries) # True
print('pe' in set_countries) # False

# add
set_countries.add('pe')
print(set_countries) # {'col', 'mex', 'bol', 'pe'}
set_countries.add('pe')
print(set_countries) # {'col', 'mex', 'bol', 'pe'}

# update, lo que hace es sumar elementos a los existentes
set_countries.update({'ar', 'ecua', 'pe'})
print(set_countries) # {'col', 'mex', 'bol', 'pe', 'ar', 'ecua'}

# remove

set_countries.remove('col')
print(set_countries) # {'mex', 'bol', 'pe', 'ar', 'ecua'}

# si le doy remove a un elemento que no existe, 
# lanza un error python, 
set_countries.remove('ar')

# para eso usamos discard, si no existe, no falla.
set_countries.discard('arg')
print(set_countries)
set_countries.add('arg')
print(set_countries)

# limpiar todo el conjunto, lo deja en vac铆o
set_countries.clear()
print(set_countries)
print(len(set_countries))

Les comparto un cuadro comparativo que nos es muy util para tener claro las diferencias entres los objetos de python

Buen铆sima clase. Ahora siento que puedo utilizar en la gran mayor铆a de las veces el m茅todo discard para eliminar elementos de un set y utilzar remove para indicar al usuario que el valor a remover no existe (implementada dentro de un manejo de excepciones).

驴Por qu茅 no puede acceder a los elementos de un conjunto a trav茅s del 铆ndice?

Dado que los conjuntos son colecciones desordenadas, en ellos no se guarda la posici贸n en la que son insertados los elementos como ocurre en los tipos list o tuple. Es por ello que no se puede acceder a los elementos a trav茅s de un 铆ndice.

Me di cuenta de algo interesante:

print({True, 1})
print({False, 0})
print(f'1 == True ?: {1 == True}')
print(f'0 == False ?: {0 == False}')

Python considera a 1 y True, como en 0 y False como mismos valores en los sets y solo a帽adir谩 al primer valor que encuentre.

Como update a帽ade cualquier tipo de elemento iterable, podemos agregar conjuntos completos de la siguiente forma.
Me parece que es una forma bastante c贸moda de consolidar y eliminar duplicados cuando tenemos informaci贸n
dispersa en muchos sets.

set_countries = {'col', 'mex', 'bol'}
set_countries_two = {'cl', 'br', 'col'}
set_countries_three = {'ur', 've'}

set_countries.update(set_countries_two, set_countries_three)

print(set_countries)

#OUTPUT -> {'col', 'ur', 'mex', 'br', 'cl', 've', 'bol'}

Esta clase la explico el profe muy bien

Mis apuntes del curso 馃槃

#** Modificando conjuntos**


# Apuntes de forma sensilla

#Conjunto general
set_countries = {'Pe', 'Mx', 'Col'}

# Ver el tama帽o del conjunto 
size = len(set_countries)
print(size)

# Ver si esta dentro del conjunto (in)
print('Pe' in set_countries)


## A帽ade elemento (add)
set_countries.add('Es')
print(set_countries)

## Actualizar los elementos (update)
set_countries.update({'Ecua', 'Ar'})
print(set_countries)

## Eliminar elemento (remove)
# Si no encuentra el valor te da un error
set_countries.remove('Col')
#set_countries.remove('Ecuad')

## Otro valor valido al eliminar elemento (discard)
#Si no encuentra el valor, sigue el programa funcionando
set_countries.discard('Ecua')

# Limpia todo el conjunto (clear)
set_countries.clear()
print(set_countries)
print(len(set_countries))

No se a que se deba (si alguien lo sabe le agradecer铆a que me pase de su conocimiento jaja :p) pero al momento de utilizar un set_countries.discard solo se puede con un solo objeto y no con varios D:

I mean, si agrego el siguiente codigo:

set_countries.discard('mex')

obviamente me elimina M茅xico, pero cuando lo realizo con

set_countries.discard({'mex', 'col', 'can'})

no elimina nada, se que podr铆a ser por el hecho de como estoy estableciendo los objetos dentro de la operaci贸n discard, pero 驴Hay una forma que pueda descartar varios elementos a la vez? o solo puedo quitar un elemento por cada operaci贸n de .discard.

Interesante el metodo: update()

la logica nos indicaria que actualizamos un valor especifico con otro valor. Estuve buscando como actualizar un elemento especifico, y la unica solucion es hacer un remove() del elemento que queremos actualizar y luego hacer un add()

""" crud set """
set_countries = {"mex", "col", "bol"}
print(set_countries)

size = len(set_countries)
print(size)

print("pe" in set_countries)
print("bol" in set_countries)

# add update
set_countries.add("ar")
print(set_countries)

set_countries.update({"ar", "pe", "ecu"})
print(set_countries)

# remove discard
set_countries.remove("mex")
print(set_countries)

set_countries.discard("br")
print(set_countries)

set_countries.discard("pe")
print(set_countries)

set_countries.clear()
print(set_countries)

Hola a todos, aca pueden ver todas las funciones de set y de todos los tipos de datos en python: https://overapi.com/python

Modificando conjuntos.

Tama帽o de un conjunto.

En Python, para obtener el tama帽o de un conjunto (conjunto de elementos 煤nicos) se puede utilizar la funci贸n len(). Por ejemplo, si tienes un conjunto llamado mi_conjunto, puedes obtener su tama帽o de la siguiente manera:

mi_conjunto = {1, 2, 3, 4, 5}
tama帽o_conjunto = len(mi_conjunto)
print(tama帽o_conjunto)

La salida en pantalla ser谩:

5

La funci贸n len() tambi茅n se puede utilizar con otros tipos de datos, como listas, tuplas y cadenas de texto, para obtener su longitud o tama帽o.


Consultar si un elemento se encuentra dentro del conjunto.

En Python, para verificar si un elemento se encuentra dentro de un conjunto, se puede utilizar el operador in. Este operador devuelve un valor booleano (True o False) dependiendo de si el elemento est谩 presente o no en el conjunto.

Por ejemplo, si tienes un conjunto llamado mi_conjunto y quieres verificar si el elemento 3 est谩 presente en el conjunto, puedes hacer lo siguiente:

mi_conjunto = {1, 2, 3, 4, 5}
if 3 in mi_conjunto:
    print("El elemento 3 est谩 presente en el conjunto")
else:
    print("El elemento 3 no est谩 presente en el conjunto")

La salida en pantalla ser谩:

El elemento 3 est谩 presente en el conjunto

Tambi茅n se puede utilizar el operador not in para verificar si un elemento no est谩 presente en el conjunto. Por ejemplo:

mi_conjunto = {1, 2, 3, 4, 5}
if 6 not in mi_conjunto:
    print("El elemento 6 no est谩 presente en el conjunto")
else:
    print("El elemento 6 est谩 presente en el conjunto")

La salida en pantalla ser谩:

El elemento 6 no est谩 presente en el conjunto


En Python, los conjuntos (sets) son una colecci贸n de elementos 煤nicos y no ordenados. Los conjuntos son mutables, lo que significa que se pueden modificar agregando o eliminando elementos de la colecci贸n. Aqu铆 te muestro algunos ejemplos de c贸mo modificar conjuntos en Python:

Agregar elementos a un conjunto

Puedes agregar elementos a un conjunto utilizando el m茅todo add(). Este m茅todo acepta un solo argumento, que es el elemento que deseas agregar al conjunto.


frutas = {'manzana', 'pl谩tano', 'naranja'}
frutas.add('fresa')
print(frutas) # {'naranja', 'pl谩tano', 'fresa', 'manzana'}

Eliminar elementos de un conjunto

Puedes eliminar elementos de un conjunto utilizando los m茅todos discard() o remove(). Ambos m茅todos aceptan un solo argumento, que es el elemento que deseas eliminar del conjunto. La diferencia entre estos dos m茅todos es que discard() no genera un error si el elemento no se encuentra en el conjunto, mientras que remove() s铆 lo hace.

frutas = {'manzana', 'pl谩tano', 'naranja'}
frutas.discard('pl谩tano')
print(frutas) # {'naranja', 'manzana'}

frutas.remove('fresa') # Genera un KeyError porque 'fresa' no est谩 en el conjunto

Actualizar un conjunto con otro conjunto

Puedes actualizar un conjunto con otro conjunto utilizando el m茅todo update(). Este m茅todo acepta un solo argumento, que es el conjunto que deseas agregar al conjunto original.

frutas = {'manzana', 'pl谩tano', 'naranja'}
otras_frutas = {'fresa', 'sand铆a'}
frutas.update(otras_frutas)
print(frutas) # {'manzana', 'pl谩tano', 'fresa', 'naranja', 'sand铆a'}

Eliminar todos los elementos de un conjunto

Puedes eliminar todos los elementos de un conjunto utilizando el m茅todo clear(). Este m茅todo no acepta argumentos.

frutas = {'manzana', 'pl谩tano', 'naranja'}
frutas.clear()
print(frutas) # set()

Espero que esto te haya ayudado a comprender c贸mo modificar conjuntos en Python.

conjunto_paises = {鈥淐olombia鈥,鈥淰enezuela鈥,鈥淓cuador鈥潁

#Para saber cuantos elementos hay en el conjunto
size = len(conjunto_paises)
print(size)

#Para saber si un elemento esta dentro del conjunto
print(鈥淐olombia鈥 in conjunto_paises)
print(鈥淧eru鈥 in conjunto_paises)

#Adicionar elementos al conjunto
conjunto_paises.add(鈥淧eru鈥)
print(conjunto_paises)

#Actualizar elementos del conjunto
conjunto_paises.update({鈥淎rgentina鈥,鈥淐hile鈥潁)
print(conjunto_paises)

#Eliminar elemento de un conjunto
conjunto_paises.remove(鈥淧eru鈥)
print(conjunto_paises)

#Limpiar todo el conjunto
conjunto_paises.clear()
print(conjunto_paises)
print(len(conjunto_paises))

Para eliminar varios elementos de un conjunto (set) a la vez en Python, puedes utilizar el m茅todo difference_update() o la operaci贸n de diferencia (-=). Aqu铆 tienes ejemplos de c贸mo puedes hacerlo:

Usando difference_update():

my_set = {1, 2, 3, 4, 5}
elements_to_remove = {3, 4}

my_set.difference_update(elements_to_remove)
print(my_set)

Usando la operaci贸n de diferencia (-=):

my_set = {1, 2, 3, 4, 5}
elements_to_remove = {3, 4}

my_set -= elements_to_remove
print(my_set)

remove():Devuelve un error si no encuentra el dato.
discard():No devuelve error si no encuentra el dato.

Tengo una duda...Porque los set no pueden tener como elementos listas o diccionarios? S茅 que es porque son "unhashable type" pero no logro comprender en profundidad a que se refiere exactamente.
Hay alguna opci贸n de eliminar m谩s de un elemento al mismo tiempo? El m茅todo add() solo me deja eliminar uno por uno
El c贸digo con comentarios de la clase, por si a alguien le sirve. Cambi茅 algunos pa铆ses. ![](https://static.platzi.com/media/user_upload/image-77974c18-ea8c-4981-b4c1-701c8f065d91.jpg)
# Crear un conjunto
conjunto = {1, 2, 3}

# Agregar un elemento
conjunto.add(4)
print(conjunto)  # Output: {1, 2, 3, 4}

# Agregar m煤ltiples elementos
conjunto.update([5, 6])
print(conjunto)  # Output: {1, 2, 3, 4, 5, 6}

# Eliminar un elemento
conjunto.remove(1)
print(conjunto)  # Output: {2, 3, 4, 5, 6}

# Eliminar un elemento si est谩 presente
conjunto.discard(2)
print(conjunto)  # Output: {3, 4, 5, 6}

# Eliminar y devolver un elemento aleatorio
elemento = conjunto.pop()
print(elemento)
print(conjunto)

# Eliminar todos los elementos
conjunto.clear()
print(conjunto)  # Output: set()
```py set\_countries = {'col', 'mex', 'bol'} size = len(set\_countries) print(size) print('col' in set\_countries) print('pe' in set\_countries) \# Add set\_countries.add('pe') print('pe' in set\_countries) set\_countries.add('pe') print(set\_countries) \# Update set\_countries.update({'ar', 'ecua', 'pe'}) print(set\_countries) \# Remove set\_countries.remove('col') print(set\_countries) try: \# If the element doesn't exists an error will be \# raised set\_countries.remove('col') except Exception as e: print('chale') print(set\_countries) \# If the element doesn't exists no error will be raised set\_countries.discard('col') print(set\_countries) \# Clear set\_countries.clear() print(set\_countries) print(type(set\_countries) == set) ```
```python set\_countries = {'col', 'mex', 'bol'} size = len(set\_countries) print(size) print('col' in set\_countries) print('pe' in set\_countries) \# Add set\_countries.add('pe') print('pe' in set\_countries) set\_countries.add('pe') print(set\_countries) \# Update set\_countries.update({'ar', 'ecua', 'pe'}) print(set\_countries) \# Remove set\_countries.remove('col') print(set\_countries) try: \# If the element doesn't exists an error will be \# raised set\_countries.remove('col') except Exception as e: print('chale') print(set\_countries) \# If the element doesn't exists no error will be raised set\_countries.discard('col') print(set\_countries) \# Clear set\_countries.clear() print(set\_countries) print(type(set\_countries) == set) ```

Diferencias entre remove() y discard():
En Python, tanto remove() como discard() son m茅todos utilizados en conjuntos (sets) para eliminar elementos, pero tienen una diferencia importante en su comportamiento cuando se intenta eliminar un elemento que no est谩 presente en el conjunto.

M茅todo remove(elemento):

  • El m茅todo remove() se utiliza para eliminar un elemento espec铆fico del conjunto.
  • Si el elemento no est谩 presente en el conjunto, se genera un error KeyError. Por lo tanto, debes tener cuidado al usar remove() para asegurarte de que el elemento que est谩s intentando eliminar realmente exista en el conjunto.

Ejemplo:

my_set = {1, 2, 3, 4}
my_set.remove(3)
print(my_set)  # Output: {1, 2, 4}

# Intentar eliminar un elemento que no est谩 presente genera un error
my_set.remove(5)  # KeyError: 5

M茅todo discard(elemento):

  • El m茅todo discard() tambi茅n se utiliza para eliminar un elemento espec铆fico del conjunto.
  • A diferencia de remove(), si el elemento no est谩 presente en el conjunto, discard() no genera ning煤n error. Simplemente no hace nada.

Ejemplo:

my_set = {1, 2, 3, 4}
my_set.discard(3)
print(my_set)  # Output: {1, 2, 4}

# No hay error si el elemento no est谩 presente
my_set.discard(5)
print(my_set)  # Output: {1, 2, 4}

En resumen, la principal diferencia entre remove() y discard() radica en c贸mo manejan la eliminaci贸n de elementos que no est谩n presentes en el conjunto. remove() generar谩 un error, mientras que discard() simplemente ignorar谩 la operaci贸n sin generar ning煤n error. La elecci贸n entre ellos depende de si deseas que se genere un error al intentar eliminar un elemento que no est谩 presente.

Diferencias entre update() y add():
En Python, tanto el m茅todo .add() como el m茅todo .update() se utilizan en conjuntos (sets) para agregar elementos, pero hay una diferencia importante en c贸mo manejan m煤ltiples elementos.

M茅todo .add(elemento):

El m茅todo .add() se utiliza para agregar un solo elemento al conjunto. Si intentas agregar un elemento que ya est谩 presente en el conjunto, no se producir谩 ning煤n cambio en el conjunto, ya que los conjuntos no permiten elementos duplicados.

Ejemplo:

my_set = {1, 2, 3}
my_set.add(4)
my_set.add(2)  # No tiene efecto, ya que 2 ya est谩 en el conjunto
print(my_set)  # Output: {1, 2, 3, 4}

M茅todo .update(iterable):

El m茅todo .update() se utiliza para agregar m煤ltiples elementos a un conjunto. Toma un iterable como argumento (por ejemplo, una lista, una tupla o incluso otro conjunto) y agrega cada elemento del iterable al conjunto. Si alg煤n elemento del iterable ya est谩 presente en el conjunto, ese elemento no se duplicar谩.

Ejemplo:

my_set = {1, 2, 3}
my_set.update([3, 4, 5, 6])
print(my_set)  # Output: {1, 2, 3, 4, 5, 6}

En este ejemplo, el conjunto original {1, 2, 3} se actualiza con los elementos de la lista [3, 4, 5, 6]. Aunque 3 ya estaba en el conjunto, no se duplica.

En resumen, la principal diferencia es que .add() agrega un solo elemento, mientras que .update() agrega m煤ltiples elementos desde un iterable.

El tipo de datos set en Python es una colecci贸n desordenada y mutable de elementos 煤nicos. Aqu铆 est谩n las funciones y m茅todos m谩s comunes asociados con la estructura set():

Creaci贸n de un Conjunto

Puedes crear un conjunto utilizando llaves {} o la funci贸n set():

# Crear un conjunto vac铆o
conjunto_vacio = set()

# Crear un conjunto con elementos
conjunto = {1, 2, 3, 4, 5}

Funciones y M茅todos de Conjuntos

  1. add(elemento)

    • Descripci贸n: Agrega un elemento al conjunto.
    conjunto = {1, 2, 3}
    conjunto.add(4)
    # Resultado: {1, 2, 3, 4}
    
  2. update(iterable)

    • Descripci贸n: Agrega todos los elementos de un iterable (lista, tupla, conjunto, etc.) al conjunto.
    conjunto = {1, 2, 3}
    conjunto.update([3, 4, 5])
    # Resultado: {1, 2, 3, 4, 5}
    
  3. remove(elemento)

    • Descripci贸n: Elimina el elemento del conjunto. Genera un error si el elemento no est谩 presente.
    conjunto = {1, 2, 3, 4, 5}
    conjunto.remove(3)
    # Resultado: {1, 2, 4, 5}
    
  4. discard(elemento)

    • Descripci贸n: Elimina el elemento del conjunto. No genera error si el elemento no est谩 presente.
    conjunto = {1, 2, 3, 4, 5}
    conjunto.discard(6)
    # Resultado: {1, 2, 3, 4, 5}
    
  5. pop()

    • Descripci贸n: Elimina y devuelve un elemento aleatorio del conjunto.
    conjunto = {1, 2, 3, 4, 5}
    elemento = conjunto.pop()
    # Resultado: elemento contiene el valor eliminado
    
  6. clear()

    • Descripci贸n: Elimina todos los elementos del conjunto.
    conjunto = {1, 2, 3, 4, 5}
    conjunto.clear()
    # Resultado: conjunto vac铆o {}
    
  7. Operaciones de Conjuntos:

    • Los conjuntos en Python admiten operaciones comunes de conjuntos como uni贸n, intersecci贸n, diferencia y diferencia sim茅trica.
    A = {1, 2, 3}
    B = {3, 4, 5}
    
    union = A.union(B)  # Tambi茅n se puede usar A | B
    # Resultado: {1, 2, 3, 4, 5}
    
    interseccion = A.intersection(B)  # Tambi茅n se puede usar A & B
    # Resultado: {3}
    
    diferencia = A.difference(B)  # Tambi茅n se puede usar A - B
    # Resultado: {1, 2}
    
    diferencia_simetrica = A.symmetric_difference(B)  # Tambi茅n se puede usar A ^ B
    # Resultado: {1, 2, 4, 5}
    
  8. copy()

    • Descripci贸n: Devuelve una copia superficial del conjunto.
    conjunto = {1, 2, 3}
    copia = conjunto.copy()
    # Resultado: copia es una copia de conjunto
    

Estas son algunas de las funciones y m茅todos m谩s comunes asociados con los conjuntos en Python. Los conjuntos son 煤tiles cuando necesitas almacenar elementos 煤nicos y realizar operaciones de conjuntos eficientes.

En Python, los conjuntos son mutables, lo que significa que puedes agregar, eliminar y modificar elementos en un conjunto despu茅s de crearlo. Aqu铆 te muestro c贸mo puedes modificar conjuntos en Python:

Agregar elementos a un conjunto:
Para agregar un elemento a un conjunto, puedes usar el m茅todo add() o el operador | (para realizar una uni贸n con otro conjunto). Aqu铆 tienes ejemplos de ambas formas:

conjunto = {1, 2, 3}

# Usando el m茅todo add()
conjunto.add(4)  # Agrega el elemento 4 al conjunto

# Usando el operador de uni贸n
conjunto |= {5, 6}  # Agrega los elementos 5 y 6 al conjunto

Despu茅s de ejecutar estos pasos, el conjunto conjunto contendr谩 los elementos {1, 2, 3, 4, 5, 6}.

Eliminar elementos de un conjunto:
Para eliminar elementos de un conjunto, puedes utilizar los m茅todos remove(), discard() o pop(). Aqu铆 tienes ejemplos de cada uno:

conjunto = {1, 2, 3, 4, 5}

conjunto.remove(3)  # Elimina el elemento 3, si no existe, genera un error.
conjunto.discard(4)  # Elimina el elemento 4, si existe, sin generar errores si no se encuentra.
elemento_eliminado = conjunto.pop()  # Elimina y devuelve un elemento arbitrario del conjunto.

Despu茅s de ejecutar estos pasos, el conjunto conjunto contendr谩 los elementos {1, 2, 5}.

Modificar elementos en un conjunto:
Los conjuntos en Python son colecciones de elementos 煤nicos, por lo que no puedes modificar un elemento existente directamente en el conjunto. En lugar de eso, debes eliminar el elemento y luego agregar el nuevo elemento que deseas. Por ejemplo:

conjunto = {1, 2, 3}

# Modificar el elemento 2 por el 4
conjunto.remove(2)  # Elimina el elemento 2
conjunto.add(4)     # Agrega el elemento 4

# El conjunto ahora contiene {1, 3, 4}

Recuerda que los conjuntos son 煤tiles para mantener colecciones de elementos 煤nicos y no tienen un orden espec铆fico, por lo que no puedes modificar elementos en funci贸n de su posici贸n en el conjunto.

Interesante la forma de usar crud en los sets. No imagine que esto fuera sencillo y nos permitiese entender las funcionalidades de este.

countries = {"colombia", "peru", "brazil"}
size = len(countries)
print(size)
print("peru" in countries)
# Para agregar un elemento a un conjunto
countries.add("bolivia")
print(countries)
# Para agregar dos o m谩s elementos a un conjunto
countries.update({"argentina", "chile"})
print(countries)
# Para elimilar un elemento de un conjunto
countries.remove("peru")
print(countries)
# Para eliminar un elemento de un conjunto, pero si no esta este elemnto que no bote un  error
countries.discard("ecuador")
print(countries)
# Para eleminar el primer elemento de un conjunto
countries.pop()
print(countries)
countries.pop()
print(countries)
countries.pop()
print(countries)
# Para limpiar todo el conjunto
countries.clear()
print(countries)

Hola, me llam贸 mucho la atenci贸n la forma corta para saber el tama帽o del conjunto:

Mis apuntes:

set_countries = {'col', 'mex', 'bol'}

# Para conocer el tama帽o del set
size = len(set_countries)
print(size) # 3

# too we can buscar un element inside del set
print('col' in set_countries) # True
print('pe' in set_countries) # False

# add
set_countries.add('pe')
print(set_countries) # {'col', 'pe', 'mex', 'bol'}
# If I try de volver to add 'pe' no me dejara, pues no puede tener elements duplicates

# update
set_countries.update({'ar', 'ecu', 'pe'})
print(set_countries) # {'col', 'ecu', 'mex', 'ar', 'pe', 'bol'}, no add 'pe' again

#remove
set_countries.remove('col')
print(set_countries) #{'ar', 'pe', 'bol', 'mex', 'ecu'}

set_countries.remove('ar') # Si lo escribo mal 'arg', me dar谩 error, use '.discard'
set_countries.discard('arg') # Con discard, si no lo encuentra, no lo elimina, como es el caso
print(set_countries) # {'mex', 'ecu', 'bol', 'pe'}
set_countries.add('arg')
print(set_countries) #{'bol', 'pe', 'ecu', 'mex', 'arg'}

set_countries.clear() # De esta forma eliminariamos TODO
print(set_countries) #set()
print(len(set_countries)) # Con 'len' buscamos la cantidad de elementos, que aqui es 0```

Modificando conjuntos

Los conjuntos en Python son mutables, lo que significa que puedes realizar modificaciones en un conjunto despu茅s de haberlo creado. Algunas de las operaciones de modificaci贸n m谩s comunes que puedes realizar en conjuntos incluyen:

Operaciones de modificaci贸n

Agregar elementos

Puedes agregar un elemento a un conjunto utilizando el m茅todo add().

mi_conjunto = {1, 2, 3}
mi_conjunto.add(4)

Despu茅s de ejecutar esto, mi_conjunto contendr谩 {1, 2, 3, 4}.

Eliminar elementos

Puedes eliminar un elemento espec铆fico de un conjunto utilizando el m茅todo remove() o discard(). La diferencia principal entre ellos es que remove() generar谩 un error si el elemento no est谩 presente en el conjunto, mientras que discard() no generar谩 un error.

mi_conjunto = {1, 2, 3}
mi_conjunto.remove(2)

Despu茅s de ejecutar esto, mi_conjunto contendr谩 {1, 3}.

mi_conjunto.discard(4)

Esto no generar谩 un error, ya que el elemento 4 no est谩 presente en el conjunto.

Eliminar un elemento aleatorio

Puedes utilizar el m茅todo pop() para eliminar y devolver un elemento aleatorio del conjunto. Esto es 煤til cuando no necesitas especificar qu茅 elemento se eliminar谩.

mi_conjunto = {1, 2, 3, 4, 5}
elemento_eliminado = mi_conjunto.pop()

elemento_eliminado contendr谩 el valor de un elemento eliminado al azar del conjunto.

Borrar el conjunto

Puedes eliminar todos los elementos de un conjunto y dejarlo vac铆o utilizando el m茅todo clear().

mi_conjunto = {1, 2, 3}
mi_conjunto.clear()

Despu茅s de ejecutar esto, mi_conjunto estar谩 vac铆o.

Es importante recordar que estas operaciones modifican el conjunto original. Si deseas realizar operaciones de modificaci贸n sin afectar al conjunto original, debes crear una copia del conjunto antes de modificarlo. Por ejemplo:

conjunto_original = {1, 2, 3}
conjunto_modificado = conjunto_original.copy()
conjunto_modificado.add(4)

En este caso, conjunto_original no se ver谩 afectado por la adici贸n de 4 a conjunto_modificado.

Actualizar elementos de un conjunto

Puedes usar el m茅todo update() para agregar m煤ltiples elementos a un conjunto a la vez. Esto puede hacerse proporcionando otro conjunto, una lista o cualquier otra iterable como argumento.

mi_conjunto = {1, 2, 3}
mi_conjunto.update([3, 4, 5])

Despu茅s de ejecutar esto, mi_conjunto contendr谩 {1, 2, 3, 4, 5}.

Seria bueno fuera haciendo recordatorios r谩pidos de cosas que menciona y ya se vieron. Por ejemplo si menciona lista, que es, como se crea y modifica o por lo menos tener un hiperv铆nculo a un lado .

Conjunto de pa铆ses

paises = {鈥淓spa帽a鈥, 鈥淔rancia鈥, 鈥淎lemania鈥, 鈥淚talia鈥, 鈥淧ortugal鈥潁
print(鈥淐onjunto:鈥, paises)

Convertir a lista

lista_paises = list(paises)
print(鈥淟ista:鈥, lista_paises)

Convertir a tupla

tupla_paises = tuple(paises)
print(鈥淭upla:鈥, tupla_paises)

Convertir a diccionario (con valores ficticios de poblaci贸n)

diccionario_paises = {pais: 鈥淧oblaci贸n鈥 for pais in paises}
print(鈥淒iccionario:鈥, diccionario_paises)

# definir un conjunto 
set_countries = {'col', 'mex', 'bol'}

# tama帽o del conjunto
size = len(set_countries)
print(size) # => 3

# preguntar si un elmento esta en el conjunto
print('col' in set_countries)    # => True
print('pe' in set_countries)     # => False

# a帽adir un elemento nuevo al conjunto
set_countries.add('pe')         
print(set_countries)             # => {'col', 'pe', 'mex', 'bol'}
set_countries.add('pe')          
print(set_countries)             # => {'col', 'pe', 'mex', 'bol'}

# actualizar el conjunto / a帽adir mas de 1 elemento
set_countries.update({'ar', 'ecua', 'pe'})
print(set_countries)             # => {'col', 'pe', 'mex', 'ar', 'ecua', 'bol'}

# eliminar un elemento del conjunto
set_countries.remove('col')
print(set_countries)             # => {'pe', 'mex', 'ar', 'ecua', 'bol'}
set_countries.remove('ar')
'''
set_countries.remove('arg') -> rompe el programa al no encontrar 
                               el elemento para eliminar
'''

# eliminar un elemento de manera segura (sin romper programa)
set_countries.discard('arg')
print(set_countries)             # => {'pe', 'mex', 'ecua', 'bol'}

# limpiar todo el conjunto
set_countries.clear()            
print(set_countries)             # => set()
print(len(set_countries))        # => 0

Dejo lo que escrib铆 en esta clase:

set_countries = {'col', 'mex', 'bol'}

# Muy bonito los conjuntos, pero... Y si quiero medir el tama帽o?
size = len(set_countries)
print(size)

# Bien, pero... y si quiero saber si un objeto est谩 en el conjunto?
print('col' in set_countries)
print('pr' in set_countries)

# y si quiero adicionar un elemento al conjunto?
set_countries.add('pe')
print(set_countries) # {'col', 'pe', 'mex', 'bol'}

# Y si por error agrego 2 veces el mismo elemento?

set_countries.add('pe')
print(set_countries) # {'col', 'pe', 'mex', 'bol'}

# Y si quiero actualizar un conjunto?
set_countries.update({'arg', 'ecua', 'pe'})
print(set_countries)

# Y si quiero eliminar algo?

set_countries.remove('col')
print(set_countries)

set_countries.remove('arg')
print(set_countries)

# Y si quiero hacer eliminaciones sin el miedo ha que fallen?
#set_countries.discard('ven')

# Y si por cosas de la vida, decido limpiar todo el conjunto?
set_countries.clear()
print(set_countries)
print(len(set_countries))

# Ok esto si es impresionante

Notas de clase

set_countries = {'col', 'mex', 'bol'}

size = len(set_countries)
print('Tama帽o del set:', size)
print('Est谩 Colombia en el set? =>', 'col' in set_countries)

#add
set_countries.add('pe')
print(set_countries)

#Para ordenarlos alfab茅ticamente, se puede usar la funci贸n sorted()
print(sorted(set_countries))

#Actualizar un conjunto
set_countries.update({'ar', 'ecu'})
print(set_countries)

#Quitar alg煤n elemento
set_countries.remove('bol')
print(set_countries)

#para quitar un elemento y no tener problemas por si no est谩
set_countries.discard('arg')
print(set_countries)

#Eliminar varios elementos a la vez
elements_to_remove = {'pe', 'mex'}
set_countries.difference_update(elements_to_remove)
print(set_countries)

elements_to_remove = {'ar', 'ecu'}
set_countries -= elements_to_remove
print(set_countries)

#Limpiar el conjunto
set_countries.clear()
print(set_countries)

Entonces, cuando se hace un update en un conjunto, agreg谩ndole otro conjunto, es como si hiciese un merge, evitando repetir los elementos de esta forma.

Interesante.

Modificando conjuntos

Podemos moficiador, agregar, remover.


# cantidad de elementos en un conjunto
set_countries = {'col', 'mex', 'bol'}
size = len(set_countries)
print(size)
3
# saber si un elemento esta en un conjunto
print('chil' in set_countries)
print('col' in set_countries)
False
True
# agregar elementos 
set_countries.add('pe')
print(set_countries)
{'mex', 'col', 'pe', 'bol'}
# no se repiten elementos, si agrego 'pe' no lo repetira
set_countries.add('pe')
print(set_countries)
{'mex', 'col', 'pe', 'bol'}
# update, actualizar conjunto
set_countries.update({'ar', 'ecua', 'pe'})
print(set_countries)
                    
{'pe', 'ecua', 'bol', 'mex', 'col', 'ar'}
# remove, eliminar elementos 
set_countries.remove('col')
print(set_countries)
{'pe', 'ecua', 'bol', 'mex', 'ar'}
# que pasa si elimino un elemento que no existe, dar谩 error
# para eliminar pero que no falle si no existe en el conjunto discard
set_countries.discard('arg')
print(set_countries)
鈥
{'pe', 'ecua', 'bol', 'mex', 'ar'}
# limpiar todo el conjuntom nos arroja que tiene 0 elementos
set_countries.clear()
print(set_countries)
print(len(set_countries))
set()
0

excelente para saber escoger bien qu茅 tipo de iterable aplica y as铆 ser m谩s optimo.

Muy buena clase, entend铆 muy bien las modificaciones que se puede hacer en un conjunto. Lo que me parece interesante, es que se puede a帽adir un subconjuntos completos.

Te puedes ahorras una l铆nea de c贸digo evitando declarar la variable utilizando la funci贸n len dentro del print:

set_countries = {'col','mex','bol'}
print(len(set_countries))
set_countries = {'col', 'mex', 'bol', 'col'}

size = len(set_countries)
print(size)

print('col' in set_countries)
print('pe' in set_countries)

# add
set_countries.add('pe')
print(set_countries)
set_countries.add('pe')

# update
set_countries.update({'ar', 'ec', 'pe'})
print(set_countries)

# remove
set_countries.remove('col')
print(set_countries)

set_countries.remove('ar')
set_countries.discard('arg')
print(set_countries)
set_countries.add('arg')
print(set_countries)
set_countries.clear()
print(set_countries)
print(len(set_countries))

Se debe tener cuidado al usar 鈥渦pdate鈥 con diccionarios.
Cuando realizas update con una lista le adiciona los elementos, pero cuando lo haces con un diccionario adiciona las llaves.

set_countries = {'col', 'mex', 'bol'}
lista = [1, 2, 3, 1, 1, 1]
set_countries.update(lista)
print(set_countries)
# Agrega los elementos de la lista
# {1, 2, 'col', 3, 'mex', 'bol'}

diccionario = {'x': 1, 'y': 2, 'z': 'DAMIAN'}
set_countries.update(diccionario)
print(set_countries)
# Agrega las llaves del diccionario
# {1, 2, 'col', 3, 'x', 'mex', 'y', 'z', 'bol'}
'''
add(): A帽ade un elemento.

update(): A帽ade cualquier tipo de objeto iterable como: listas, tuplas.

discard(): Elimina un elemento y si ya existe no lanza ning煤n error.

remove(): Elimina un elemento y si este no existe lanza el error 鈥渒eyError鈥.

pop(): Nos devuelve un elemento aleatorio y lo elimina y si el conjunto est谩 vac铆o lanza el error 鈥渒ey error鈥.

clear(): Elimina todo el contenido del conjunto.
'''

set_countries = {'col', 'mex', 'bol'}

# para saber el tama帽o del conunto
size = len(set_countries)
print("El tama帽o del conjunto es: ", size)

# para revisar si existe un elemento dentro del conjunto
print ("Existe la palabra col en el conjunto? ", "col" in set_countries)
print ("Existe la palabra lol en el conjunto? ", "lol" in set_countries)

# para agregar un elemento al conjunto 
set_countries.add("pe")
print(set_countries)

# para agregar al conjunto 
set_countries.update({"arg", "ecu"})
print(set_countries)

# para eliminar del conjunto 
# forma 1 con .remove(), de esta manera si se ingresa un valor que no existe aparecer谩 un error
set_countries.remove("col")
set_countries.remove("arg")
print(set_countries)

# forma 2 con . dicard(), de esta manera si se ingresa un valor que no existe no aparecer谩 ningun error simplemente no har谩 nada
set_countries.discard("arg")

# para eliminar todos los elementos del conjunto usar .clear()
set_countries.clear()
print(set_countries)

Funciones de set:

  • add(): A帽ade un elemento.
  • update(): A帽ade cualquier tipo de objeto iterable como: listas, tuplas.
  • discard(): Elimina un elemento y si ya existe no lanza ning煤n error.
  • remove(): Elimina un elemento y si este no existe lanza el error 鈥渒eyError鈥.
  • pop(): Nos devuelve un elemento aleatorio y lo elimina y si el conjunto est谩 vac铆o lanza el error 鈥渒ey error鈥.
  • clear(): Elimina todo el contenido del conjunto.

UN EXTRA

  • sorted() ordena alfab茅ticamente los datos dentro de un conjunto.

Set CRUD (conjunto)

#saber el tamano de un conjunto
set_countries = {'col', 'mex', 'bol'}
size = len(set_countries)
print(size)

#buscar si elemento esta en un conjunto
print('col' in set_countries)
print('pe' in set_countries)

#add
set_countries.add('pe')
print(set_countries)

#update
set_countries.update({'arg', 'ecu', 'pe'})
print(set_countries)

#remove
set_countries.remove('col')
print(set_countries)

Modificando conjuntos:
Para modificar conjuntos en Python contamos con algunos m茅todos o funciones, veamos cuales son y que hacen:

Para saber los elementos de un conjunto usamos la funci贸n size().
Podemos preguntar si un elemento pertenece a un conjunto con la palabra reservada in.
Podemos agregar elemento a un conjunto con el m茅todo .add()
Para a帽adir elementos a un conjunto usamos .update()
Para eliminar un elemento usamos .remove(), pero si el elemento que pasamos no existe nos dar谩 un error.
Para eliminar un elemento y si no existe no nos da error usamos .discard()
Para limpiar un conjunto usamos .clear()

set_countries = {'col', 'mex', 'bol'}

# Conocer el tama帽o de un Set
print(len(set_countries))

# Saber si un elemento es parte de un Set
print('col' in set_countries)
print('pe' in set_countries)

# Agregar un elemento al conjunto
set_countries.add('pe')
print(set_countries)

# Aunque se agregue un elemento dos veces, solo aparecer谩 una vez
set_countries.add('pe')
print(set_countries)

# Actualizar un conjunto
set_countries.update({'ar', 'ecua', 'pe'})
print(set_countries)

# Remover elemntos de un Set
set_countries.remove('col')
print(set_countries)

set_countries.remove('ar')
print(set_countries)

# Si se intenta remover un elemento que no existe obtenemos un KeyError
# set_countries.remove('ar')
# print(set_countries)

# usar la funci贸n discard para no obtener ese error aunque el elemento no exista
set_countries.discard('ar')
print(set_countries)

# Eliminar todos los elementos de un Set
set_countries.clear()
print(set_countries)

Algunos m茅todos 煤tiles en Python para trabajar con conjuntos son:

add(): Agrega un elemento al conjunto
remove(): Elimina un elemento del conjunto
union(): Devuelve la uni贸n de dos conjuntos
intersection(): Devuelve la intersecci贸n de dos conjuntos
difference(): Devuelve la diferencia entre dos conjuntos
issubset(): Comprueba si un conjunto es subconjunto de otro
issuperset(): Comprueba si un conjunto es superconjunto de otro

El discard()m茅todo elimina el elemento especificado del conjunto.

Este m茅todo es diferente del remove()m茅todo, porque el remove() m茅todo generar谩 un error si el elemento especificado no existe, y el discard()m茅todo no lo har谩 .

OjO. Si agregas estas l铆neas al inicio de tu c贸digo la pantalla se limpia cada vez que ejecutas

# Libreria para limpiar pantalla
import random
import os
os.system("cls")

Hola!! Aqui les dejo mi codigo espero ayude!

jumpline = '-' * 25
set_countries = {'col', 'mex', 'bol'}

# Con len() puedo saber la longitud de el set
size = len(set_countries)
print(size) # 3
print(jumpline)

# Verificar si un elemento esta dentro de este conjunto
print('col' in set_countries) # True
print('pe' in set_countries) # False
print(jumpline)

# Adicionar elementos al set con .add()
print(set_countries) # {'col', 'mex', 'bol'}
set_countries.add('pe')
print(set_countries) # {'col', 'pe', 'mex', 'bol'}

# Aunque le pida adicionar otro elemento si esta repetido no lo agrega
set_countries.add('pe')
print(set_countries) # {'col', 'pe', 'mex', 'bol'}
print(jumpline)

# .update() Para actualizar un conjunto usar {} 
print(set_countries) # {'col', 'pe', 'mex', 'bol'}
set_countries.update({'ar', 'ecua', 'pe'})
print(set_countries) # {'col', 'pe', 'mex', 'ar', 'ecua', 'bol'}
print(jumpline)

# Remover elementos tiene diferentes metodos
print(set_countries) # {'col', 'pe', 'mex', 'ar', 'ecua', 'bol'}
set_countries.remove('col')
print(set_countries) # {'pe', 'mex', 'ar', 'ecua', 'bol'}
set_countries.remove('ar')
print(set_countries) # {'pe', 'mex', 'ecua', 'bol'}
print(jumpline)

# Si no estamos seguros que un elemento esta para borrarlo .remove() dara error
#set_countries.remove('arg') # Syntax error
# Usamoos .discard() cuando no estamos seguros. Si el elemento no existe no saltara el error
set_countries.discard('arg') # No pasa nada
print(jumpline)

# Corrigo el error de argentina abreviado
print(set_countries) # {'pe', 'mex', 'ecua', 'bol'}
set_countries.add('arg')
print(set_countries) # {'pe', 'mex', 'arg', 'ecua', 'bol'}
print(jumpline)

# Puedo limpiar completamente un set con .clear()
print(set_countries) # {'pe', 'mex', 'arg', 'ecua', 'bol'}
set_countries.clear()
print(set_countries) # set()
print(len(set_countries)) # 0
print(jumpline)

Les dejo mi codigo con notas! Espero ayude

jumpline = '-' * 25
set_countries = {'col', 'mex', 'bol'}

# Con len() puedo saber la longitud de el set
size = len(set_countries)
print(size) # 3
print(jumpline)

# Verificar si un elemento esta dentro de este conjunto
print('col' in set_countries) # True
print('pe' in set_countries) # False
print(jumpline)

# Adicionar elementos al set con .add()
print(set_countries) # {'col', 'mex', 'bol'}
set_countries.add('pe')
print(set_countries) # {'col', 'pe', 'mex', 'bol'}

# Aunque le pida adicionar otro elemento si esta repetido no lo agrega
set_countries.add('pe')
print(set_countries) # {'col', 'pe', 'mex', 'bol'}
print(jumpline)

# .update() Para actualizar un conjunto usar {} 
print(set_countries) # {'col', 'pe', 'mex', 'bol'}
set_countries.update({'ar', 'ecua', 'pe'})
print(set_countries) # {'col', 'pe', 'mex', 'ar', 'ecua', 'bol'}
print(jumpline)

# Remover elementos tiene diferentes metodos
print(set_countries) # {'col', 'pe', 'mex', 'ar', 'ecua', 'bol'}
set_countries.remove('col')
print(set_countries) # {'pe', 'mex', 'ar', 'ecua', 'bol'}
set_countries.remove('ar')
print(set_countries) # {'pe', 'mex', 'ecua', 'bol'}
print(jumpline)

# Si no estamos seguros que un elemento esta para borrarlo .remove() dara error
#set_countries.remove('arg') # Syntax error
# Usamoos .discard() cuando no estamos seguros. Si el elemento no existe no saltara el error
set_countries.discard('arg') # No pasa nada
print(jumpline)

# Corrigo el error de argentina abreviado
print(set_countries) # {'pe', 'mex', 'ecua', 'bol'}
set_countries.add('arg')
print(set_countries) # {'pe', 'mex', 'arg', 'ecua', 'bol'}
print(jumpline)

# Puedo limpiar completamente un set con .clear()
print(set_countries) # {'pe', 'mex', 'arg', 'ecua', 'bol'}
set_countries.clear()
print(set_countries) # set()
print(len(set_countries)) # 0
print(jumpline)
set_countries = {'col', 'mex', 'bol'}

# size : para saber cual es el tama帽o de ese conjunto
size = len(set_countries)
print(size)

# in : para saber si hay un elemeto dentro del conjuto
print('col' in set_countries)
print('pe' in set_countries)

# .add : agrega un elemeto pero no lo duplica
set_countries.add('pe')
print(set_countries)
set_countries.add('pe')
print(set_countries)

# .update : agrega al conjunto un subconjunto de elementos 
set_countries.update({'ar', 'ecua', 'pe'})
print(set_countries)

# .remove : elimina el valor que querramos que exista en el conjunto, genera erro al eliminar algo que no existe

set_countries.remove('col')
print(set_countries)

set_countries.remove('ar')
#.discard es para eliminar pero si no existe el elemeto para eliminar no genera ningun error
set_countries.discard('arg')
print(set_countries)
set_countries.add('arg')
print(set_countries)
#.clear elimina todo lo que existe dentro del conjunto
set_countries.clear()
print(set_countries)
print(len(set_countries))

驴Qu茅 es el CRUD en Python?

Significa Crear, Leer, Actualizar y Eliminar. Se refiere a las cuatro operaciones b谩sicas que se pueden realizar en un conjunto de datos. En el contexto de los Sets en Python, el CRUD se puede aplicar de la siguiente manera:

  1. Crear: Para crear un Set en Python, se puede utilizar la funci贸n set() o los corchetes {}.
  2. Leer: Para leer los elementos de un Set, se puede iterar sobre el conjunto o acceder a un elemento espec铆fico utilizando la sintaxis de 铆ndice.
  3. Actualizar: Para actualizar un elemento de un Set, se debe eliminar y volver a agregar el elemento con los nuevos valores. Sin embargo, es importante tener en cuenta que los Sets no permiten elementos duplicados, por lo que si se agrega un elemento que ya existe, no habr谩 cambios en el Set.
  4. Eliminar: Para eliminar un elemento de un Set, se puede utilizar el m茅todo remove() o el m茅todo discard(). El m茅todo remove() eliminar谩 el elemento especificado y generar谩 una excepci贸n si el elemento no existe. Por otro lado, el m茅todo discard() eliminar谩 el elemento especificado sin generar una excepci贸n, incluso si el elemento no existe.
# Crear un Set
colores = set(["rojo", "verde", "azul"])
print("Set inicial:", colores)

# Leer los elementos del Set
for color in colores:
    print("Elemento:", color)

# Actualizar un elemento del Set
colores.remove("rojo")
colores.add("amarillo")
print("Set actualizado:", colores)

# Eliminar un elemento del Set
colores.discard("verde")
print("Set despu茅s de eliminar verde:", colores)

Algo como:

#Modificando conjuntos

#Ya dijimos que el set puede modificarse

set_paises={"col","mex","bol","bol"}

print(len(set_paises))
print("col" in set_paises)
print("per" in set_paises)

#Add o a帽adir
set_paises.add("pe")
print(set_paises)
set_paises.add("pe") #No admite duplicidad
print(set_paises)  

#Update / A帽adir varios
set_paises.update({"arg","ecua","pe"})
print(set_paises) 

#Eliminacion
#Si el elemento no esta, colapsa
set_paises.remove("col")
print(set_paises)

#Si el elemento si esta, no colapsa
set_paises.discard("ar")
print(set_paises)

set_paises.clear()
print(set_paises)

'''
Funciones de set:

add(): A帽ade un elemento.
update(): A帽ade cualquier tipo de objeto iterable como: listas, tuplas.
discard(): Elimina un elemento y si ya existe no lanza ning煤n error.
remove(): Elimina un elemento y si este no existe lanza el error 鈥渒eyError鈥.
pop(): Nos devuelve un elemento aleatorio y lo elimina y si el conjunto est谩 vac铆o lanza el error 鈥渒ey error鈥.
clear(): Elimina todo el contenido del conjunto

'''

Excelente clase, conceptos muy claros!

Les comparto el c贸digo:

# Modificando conjuntos

set_countries = {"col", "mex", "bol"}

# Tama帽o del conjunto
size = len(set_countries)
print(size)

# Preguntar por un elemento en especifico
print("col" in set_countries)
print("pe" in set_countries)

# Agregar un elemento al conjunto 
# add()
set_countries.add("pe")
print(set_countries)

# Aunque lo agregue varias veces, conserva su regla de no duplicados
set_countries.add("pe")
print(set_countries)

# Actualizar los elementos
# Es muy similar a agregar elementos
# update()
set_countries.update({"ar", "ec", "pe"})
print(set_countries)

# Elimir elementos
# remove()
set_countries.remove("col")
print(set_countries)

set_countries.remove("ar")
print(set_countries)

# Remover un elemento que no existe
# remove()
#set_countries.remove("arg")

# discard()
'''
Con este m茅todo, si el elemento existe lo elimina,
en caso contrario, no genera error por no encontrarlo
'''
set_countries.discard("arg")
print(set_countries)

# Agregamos argentina
set_countries.add("arg")
print(set_countries)

# Limpiar el conjunto, elimina todos los elementeos
# clear()
set_countries.clear()
print(set_countries)
set_primerset = {13.4, 'col', True, 'mex', 'bol'}

#Cantidad de elementos
size= len(set_primerset)

#Saber si hay un elemento dentro del conjunto
idk = 13.4 in set_primerset

#Agregar elementos
new = set_primerset.add('gaaa')

#Actualizar
set_primerset.update({1, 'uno', False})

#Remover, sino encuentra el elemento, lanza un error
set_primerset.remove(1)

#Remover, sino encuentra el elemento, no pasa nada
set_primerset.discard('argggg')

#Vacear el conjunto
#set_primerset.clear

Buena clase la de hoy, saludos

#cuantos elementos hay
cities = {'gye', 'uio', 'cue', 'mnt', 'gye'}
tam = len(cities)
print(tam)
#busqueda
print('col' in cities)
print('gye' in cities)
# adicionar elemento
cities.add('uio')
cities.add('gal')
print(cities)

# actualizar conjunto

cities.update({'esm', 'bab', 'loj'})
print(cities)

#remover, si no esta lanza error

cities.remove('bab')
print(cities)

#descartar, si no esta no lanza error

cities.discard('uio')
print(cities)

#dejar vacio el conjunto
cities.clear()
print(cities)
print(len(cities))

驴C贸mo funciona .difference() ?


Al igual que en teoria de conjuntos, queremos quitarle a A todos los elementos de B (incluso los que tienen en com煤n)

Ejemplo:

#diference() = A - B 
set_number = {1, 'col', 'x', 10, 14, 'e' }
# in this case, set_number minus {10,14, 'm', 'c'}
z = set_number.difference({10,14, 'm', 'c'})
print(z)
set_countries = {'col','mex','bol'}

size = len(set_countries)
print(size)

print ('col' in set_countries)
print('pe' in set_countries)

# add
set_countries.add('pe')
print(set_countries)
set_countries.add('pe')
print(set_countries)

# update
set_countries.update({'ar','ecua', 'pe'})
print(set_countries)

# remove
set_countries.remove('col')
print(set_countries)

set_countries.remove('ar')
set_countries.discard('arg')
print(set_countries)
set_countries.add('arg')
print(set_countries)
set_countries.clear()
print(set_countries)
print(len(set_countries))

M茅todos sets


s.add(<elem>)
  • El m茅todo add() permite a帽adir un elemento al set.
l = set([1, 2])
l.add(3)
print(l) #{1, 2, 3}
s.remove(<elem>)
  • El m茅todo remove() elimina el elemento que se pasa como par谩metro. Si no se encuentra, se lanza la excepci贸n KeyError.
s = set([1, 2])
s.remove(2)
print(s) #{1}
s.discard(<elem>)
  • El m茅todo discard() es muy parecido al remove(), borra el elemento que se pasa como par谩metro, y si no se encuentra no hace nada.
s = set([1, 2])
s.discard(3)
print(s) #{1, 2}
s.pop()
  • El m茅todo pop() elimina un elemento aleatorio del set.
s = set([1, 2])
s.pop()
print(s) #{2}
s.clear()
  • El m茅todo clear() elimina todos los elementos de set.
s = set([1, 2])
s.clear()
print(s) #set()
  • Otros

  • Los sets cuentan con una gran cantidad de m茅todos que permiten realizar operaciones con dos o m谩s, como la uni贸n o la intersecci贸n.

  • Podemos calcular la uni贸n entre dos sets usando el m茅todo union(). Esta operaci贸n representa la 鈥渕ezcla鈥 de ambos sets. N贸tese que el m茅todo puede ser llamado con m谩s par谩metros de entrada, y su resultado ser谩 la uni贸n de todos los sets.


s1 = {1, 2, 3}
s2 = {3, 4, 5}
print(s1.union(s2)) #{1, 2, 3, 4, 5}
  • Tambi茅n podemos calcular la intersecci贸n entre dos o m谩s set. Su resultado ser谩n aquellos elementos que pertenecen a ambos sets.
s1 = {1, 2, 3}
s2 = {3, 4, 5}
print(s1.intersection(s2)) #{3}
  • Los set en Python tiene gran cantidad de m茅todos, por lo que lo dejaremos para otro cap铆tulo, pero aqu铆 os dejamos con un listado de ellos:

`

  1. ``
    s1.union(s2[, s3 鈥)
    s1.intersection(s2[, s3 鈥)
    s1.difference(s2[, s3 鈥)
    s1.symmetric_difference(s2)
    s1.isdisjoint(s2)
    s1.issubset(s2)
    s1.issuperset(s2)
    s1.update(s2[, s3 鈥)
    s1.intersection_update(s2[, s3 鈥)
    s1.difference_update(s2[, s3 鈥)
    s1.symmetric_difference_update(s2)

Modificando conjuntos

def run ():
    # Esta es otra forma de hacer un set
    # set_countries = {"col", "mex", "arg"}
    set_countries = set(["col", "mex", "arg"])
    print(set_countries)

    #---------------------------------------------------------------------------------------------------------------------------------------------#

    # El metodo len nos dice la longitud de nuestro set, o sea cuantos elementos tiene.
    size = len(set_countries)
    print(size)

    #---------------------------------------------------------------------------------------------------------------------------------------------#

    #Podemos preguntarle si un cierto elemento esta en nuestro conjunto con "in".
    print("col" in set_countries)
    print("niger" in set_countries)
    
    #---------------------------------------------------------------------------------------------------------------------------------------------#

    # Podemos agregar elemntos a nuestro set.
    set_countries.add("pe")
    print(set_countries)

    #---------------------------------------------------------------------------------------------------------------------------------------------#

    # Con el metodo "update" podemos actualizar nuestro set, y por mas veces que repitamos un elmento este no sera impreso de nuevo.
    set_countries.update({"bol", "ecua", "pe"})
    print(set_countries)

    #---------------------------------------------------------------------------------------------------------------------------------------------#

    # Con el metodo "remove" podemos borrar un elemento de un set.
    set_countries.remove("col")
    print(set_countries)

    #---------------------------------------------------------------------------------------------------------------------------------------------#

    # Con el elemento "discard" es silenciar un error, si queremos borrar un elemnto que no esta y para que no nos salte error usamos dicard
    set_countries.discard("per")

    #---------------------------------------------------------------------------------------------------------------------------------------------#

    # Con "clear" eliminamos todo nuestro conjunto 
    set_countries.clear()
    print(set_countries)
    print(len(set_countries))

if __name__ == "__main__":
    run()

<aside>
馃帓 En la clase aprendimos a usar los m茅todos para modificar nuestro conjunto; vimos el m茅todo add, remove, clear, discard, len, in y update.

</aside>

set_countries = {'col' , 'mex' , 'bol'}

size = len(set_countries)
print(size)

print('col' in set_countries)
print('pe' in set_countries)

#add
set_countries.add('pe')
print(set_countries)
set_countries.add('pe') #no agrega repetidos
print(set_countries)

#Update
set_countries.update({'ar' , 'ecu', 'pe'})
print(set_countries)    

#remove
set_countries.remove('pe')
print(set_countries)

set_countries.remove('ar')
set_countries.discard('arg')
print(set_countries)
set_countries.add('arg')
print(set_countries)
set_countries.clear()
print(set_countries)
print(len(set_countries))

I love Python!!!

Gracias profesor por hacer las cosas f谩ciles y entendibles.
Con esto la mente comienza a buscar como las aplicaciones de los conjuntos como lo mencione en el video anterior voy a intentar realizar un programa al terminar el curso de un texto como base.

Hola!, les dejo mis apuntes. Buena clase:

#Tenemos el siguiente conjunto inicial:

set_countries = {"col", "mex", "bol"}

#Podemos saber cu谩ntos elementos hay dentro de un conjunto:
size = len(set_countries)
print(size)


#Para confirmar que efectivamente tenemos los elementos "col" y "peru" en nuestro conjunto:
print("col" in set_countries)
print("peru" in set_countries)

#add. Agregar un pa铆s a nuestro conjunto
set_countries.add("pe")
print(set_countries)
set_countries.add("pe")
print(set_countries)

#update. Agregar un conjunto a nuestro conjunto principal
set_countries.update({"ar", "ecua","pe"})
print(set_countries)


#remove. Retirar uno de los pa铆ses de nuestro conjunto
set_countries.remove ("col")
print(set_countries)

set_countries.remove("ar")
print(set_countries)

#remove. Eliminar elementos que no existen (Tendremos como resultado un error)
set_countries.remove("ar")
print(set_countries)

#Eliminar un elemento sin tener un fallo como resultado
set_countries.discard("arg")
print(set_countries)

set_countries.add("arg")
print(set_countries)

#Eliminar todo el conjunto
set_countries.clear()
print(set_countries)

#Contar cu谩ntos elementos quedan en el conjunto = 0
print(len(set_countries))