Conjuntos

En matemáticas, existe un conjunto (o teoría de conjuntos). Tal vez incluso los estudiaste en un curso de matemáticas. Puede que incluso estés familiarizado con los diagramas de Venn.
En la práctica, un conjunto puede considerarse simplemente como un conjunto bien definido de objetos individuales, llamados elementos o miembros.
Agrupar objetos en un conjunto puede ser útil en la programación, y Python nos proporciona el tipo integrado set.

Los conjuntos (tipo set) se diferencian de otros tipos de objetos en las operaciones únicas que se pueden realizar en ellos.

El tipo incorporado set en Python tiene las siguientes características:
    Los
  • elementos de un conjunto no están ordenados (lo que significa que dos conjuntos son equivalentes si contienen los mismos elementos). Los elementos del conjunto no se almacenan secuencialmente, sino de acuerdo con ciertos algoritmos que le permiten determinar rápidamente si un elemento pertenece a un conjunto (sin enumerar todos los elementos);
  • los elementos del conjunto son únicos. No se permiten elementos duplicados;
  • los conjuntos son mutables (por ejemplo, puede agregar un elemento a un conjunto), pero los propios elementos dentro del conjunto deben ser inmutables (números, cadenas, tuplas). No puede hacer que una lista u otro conjunto sea un elemento de un conjunto;

 

Crear conjunto
1 vía

Simplemente enumere entre llaves los elementos del conjunto.

x = {"escuela", "maestro", "clase", estudiante}
 

2 vías 
Utilice la función integrada set(). x = conjunto()    # conjunto vacío list_name = ["Andry", "Bob", "Caroline"] y = conjunto(nombre_lista)    # puede crear múltiples                        # de cualquier objeto iterable z = set(["Andry", "Bob", "Caroline"])     # {'Bob', 'Caroline', 'Andry'} k = conjunto(("Andry", "Bob", "Caroline"))     # {'Bob', 'Caroline', 'Andry'} s = "cadena s" m = conjunto(s)    # {'i', 't', 'g', 'r', 'n', & #39;s', ' '} -                # ¡Presta atención!                # el orden de los elementos puede ser cualquiera,               # elementos no se repiten n = {42, 'foo', 3.14159, Ninguno, (1, 2, 3)}    # elementos en                                                # puede ser de diferentes tipos  
Establecer salida
Los elementos del conjunto se muestran en un orden arbitrario, no necesariamente en el orden en que se agregan. z = conjunto(["Andry", "Bob", "Caroline"])  imprimir(z)     # {'Bob', 'Caroline', 'Andry'} imprimir(*z)    # Bob Andry Carolina

Métodos para trabajar con conjuntos


Número de elementos en el conjunto
El método len() devuelve el número de elementos del conjunto. k = {42, 'foo', 3.14159, Ninguno, (1, 2, 3)}  imprimir(len(k))   #5

 

Determinar si un elemento está en un conjunto (pertenencia en)
k = {42, 'foo', 3.14159, Ninguno, (1, 2, 3)}  imprimir(42 en k)    # Verdadero imprimir(2 en k)     # Falso
Aunque los elementos contenidos en un conjunto deben ser de tipo inmutable, los propios conjuntos se pueden cambiar. 

 

Agregar un elemento a conjunto
x.add(<elemento>)
al conjunto  x añade <elem> que debe ser el único objeto inmutable.

 

Eliminar un elemento de un conjunto
1) x.remove(<elemento>)
<elem>  se elimina del conjunto x. Python lanza una excepción (error) si <elem> no está en x.

2) x.discard(<elemento>)
lo mismo elimina, pero en caso de ausencia de un elemento en el conjunto, no genera una excepción.

3) x.pop()
elimina y devuelve un elemento aleatorio del conjunto. Si el conjunto está inicialmente vacío, se produce una excepción (error).

4) x.clear()
elimina todos los elementos del conjunto (borra el conjunto).

Error

¿Establecer clasificación?

Como sabemos, no se tiene en cuenta el orden de los elementos del conjunto. Entonces, ¿tiene sentido hablar sobre la clasificación de conjuntos en Python 3? (Por eso hay un signo de interrogación en el título)

Para encontrar rápidamente un elemento en un conjunto, es deseable almacenarlos en la memoria en forma ordenada.

Veamos algunos ejemplos. ¿Qué sucede con los elementos de diferentes tipos de datos en el mismo conjunto? Estos elementos no deben ordenarse. Si imprimimos elementos usando el comando print(), se mostrarán así:

a = {0, 1, 12, 'b', 'ab', 3, 2, 'a'} imprimir(a) # {0, 1, 2, 3, 'a', 12, 'b', 'ab'} En este caso, se muestran valores sin ordenar. Si repite el lanzamiento, entonces el orden de salida puede ser diferente. Pero esto es solo si se mezclan elementos de diferentes tipos.

Intentemos mostrar datos de un tipo (por ejemplo, solo números): a = {0, 1, 12, 3, 2} imprimir (a) # {0, 1, 2, 3, 12} Todos los elementos se muestran en orden. Intentemos convertirlo en una lista: a = {0, 1, 12, 3, 2} b = lista(a) imprimir (b) # [0, 1, 2, 3, 12] Del mismo modo, los elementos ordenados en orden ascendente se escribieron en la lista.

Resulta que los elementos se almacenan en memoria de forma ordenada si son del mismo tipo. Pero es mejor no contar con eso, los algoritmos de Python pueden cambiar.

Si necesita obtener una lista ordenada de un conjunto, es mejor usar el sort (< código>ordenado) función para estar seguro ). Los elementos se ordenarán exactamente. Su código será comprensible para los demás.