Sets - Learn Python 3 - Snakify

Lesson 10
Conjuntos


1. Que es un set

Establecer en Python es una estructura de datos equivalente a conjuntos en matemáticas. Puede consistir en varios elementos; el orden de los elementos en un conjunto no está definido. Puede agregar y eliminar elementos de un conjunto, puede iterar los elementos del conjunto, puede realizar operaciones estándar en conjuntos (unión, intersección, diferencia). Además de eso, puedes verificar si un elemento pertenece a un conjunto.

A diferencia de las matrices, donde los elementos se almacenan como una lista ordenada, el orden de los elementos en un conjunto no está definido (además, los elementos establecidos generalmente no se almacenan en orden de aparición en el conjunto; esto permite verificar si un elemento pertenece a un conjunto más rápido) que solo pasar por todos los elementos del conjunto).

Cualquier tipo de datos inmutables puede ser un elemento de un conjunto: un número, una cadena, una tupla. Los tipos de datos mutables (modificables) no pueden ser elementos del conjunto. En particular, la lista no puede ser un elemento de un conjunto (pero la tupla puede), y otro conjunto no puede ser un elemento de un conjunto. El requisito de inmutabilidad se desprende de la forma en que las computadoras representan conjuntos en la memoria.

Advertising by Google, may be based on your interests

2. Cómo definir un conjunto

Puede definir un conjunto tan simple como nombrando todos sus elementos entre paréntesis. La única excepción es el conjunto vacío , que se puede crear utilizando la función set() . Si set(..) tiene una lista, una cadena o una tupla como parámetro, devolverá un conjunto compuesto por sus elementos. Por ejemplo,

A = {1, 2, 3}
A = set('qwerty')
print(A)

imprimirá {'e', 'q', 'r', 't', 'w', 'y'} como salida.

El orden de los elementos no es importante. Por ejemplo, el programa

A = {1, 2, 3}
B = {3, 2, 3, 1}
print(A == B)

se imprimirá True , porque A y B son conjuntos iguales.

Cada elemento puede ingresar al conjunto solo una vez. set('Hello') devuelve el conjunto de cuatro elementos: {'H', 'e', 'l', 'o'} .

Advertising by Google, may be based on your interests

3. Operaciones con elementos

Puede obtener la cantidad de elementos en el conjunto utilizando la función len .

También puede iterar sobre todos los elementos del conjunto (¡en un orden indefinido!) Utilizando el ciclo for :

primes = {2, 3, 5, 7, 11}
for num in primes:
    print(num)

Puede verificar si un elemento pertenece a un conjunto usando la palabra clave in : expresiones como a in A devuelven un valor de tipo bool . Del mismo modo, está la operación opuesta, not in . Para agregar un elemento al conjunto, se add el método:

A = {1, 2, 3}
print(1 in A, 4 not in A)
A.add(4)

Hay dos métodos para eliminar un elemento de un conjunto: discard y remove . Su comportamiento varía solo en caso de que el elemento eliminado no estuviera en el conjunto. En este caso, el método discard no hace nada y el método remove arroja la excepción KeyError .

Finalmente, pop elimina un elemento aleatorio del conjunto y devuelve su valor. Si el conjunto está vacío, pop genera la excepción KeyError .

Puede transformar un conjunto en una lista usando la list funciones.

Advertising by Google, may be based on your interests

4. Operaciones en sets

Esta es la forma en que realiza las operaciones conocidas en conjuntos en Python:

A | segundo
A.union (B)
Devuelve un conjunto que es la unión de los conjuntos A y B
A | = B
A. actualización (B)
Agrega todos los elementos de la matriz B al conjunto A
A y B
A.intersección (B)
Devuelve un conjunto que es la intersección de los conjuntos A y B
A & = B
A.intersection_update (B)
Deja en el conjunto A solo los elementos que pertenecen al conjunto B
A - B
A.diferencia (B)
Devuelve la diferencia establecida de A y B (los elementos incluidos en A , pero no incluidos en B ).
A - = B
A.difference_update (B)
Elimina todos los elementos de B del conjunto A
A ^ B
A.symmetric_difference (B)
Devuelve la diferencia simétrica de los conjuntos A y B (los elementos que pertenecen a A o B , pero no a ambos conjuntos simultáneamente).
A ^ = B
A.symmetric_difference_update (B)
Escribe en A la diferencia simétrica de los conjuntos A y B
A <= B
A.issubset (B)
Devuelve true si A es un subconjunto de B
A> = B
A.Superset (B)
Devuelve true si B es un subconjunto de A
A <B
Equivalente a A <= B and A != B
A> B
Equivalente a A >= B and A != B
Advertising by Google, may be based on your interests