English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial básico de Python

Control de flujo de Python

Funciones en Python

Tipos de datos en Python

Operaciones de archivos Python

Objetos y clases de Python

Fecha y hora de Python

Conocimientos avanzados de Python

Manual de referencia de Python

Conjuntos (Set) en Python

En este artículo, aprenderá todo sobre los conjuntos de Python; cómo crearlos, agregar o eliminar elementos dentro de ellos, y todas las operaciones que se pueden realizar con conjuntos en Python.

¿Qué es un conjunto en Python?

Los conjuntos son conjuntos desordenados de proyectos. Cada elemento es único (sin elementos repetidos) y debe ser inmutable (no puede cambiar).

Pero, el conjunto en sí es mutable. Podemos agregar o eliminar proyectos en él.

Los conjuntos se pueden usar para realizar operaciones matemáticas de conjuntos, como la unión, la intersección, la diferencia simétrica, etc.

¿Cómo crear un conjunto?

A través de colocar todos los proyectos (elementos) dentro de los corchetes {} y separarlos con comas o usar funciones integradas para crear un conjunto set().

puede tener cualquier número de elementos y pueden tener diferentes tipos (enteros, flotantes, tuplas, cadenas, etc.). Pero el conjunto no puede tener elementos mutables (por ejemplolistaodiccionario) como sus elementos.

# Conjunto de enteros
mi_set = {1, 2, 3}
# Output: Elemento aleatorio
# Conjunto con tipos de datos mixtos
mi_set = {1.0, "Hola", (1, 2, 3)}
# Output: Elemento aleatorio

intenta también el siguiente ejemplo.

# Conjunto sin elementos repetidos
# Salida: {1, 2, 3, 4}
mi_set = {1,2,3,4,3,2}
# Output: Elemento aleatorio
# El set no puede contener elementos mutables
# Aquí [3,4] es una lista mutable
# Si descomentas la línea12fila,
# Esto causará un error.
# TypeError: unhashable type: 'list'
#my_set = {1, 2, [3, 4])
# Podemos generar un conjunto a partir de una lista
# Salida: {1, 2, 3}
mi_set = set([1,2,3,2])
# Output: Elemento aleatorio

Crear un conjunto vacío es un poco especial.

Los corchetes vacíos {} crean un diccionario vacío en Python. Para crear un conjunto sin elementos, usamos la función set() sin parámetros.

# Inicializar usando {}
a = {}
# Comprobar el tipo de datos de a
# Output: <class 'dict'>
print(type(a))
# Inicializar usando set()
a = set()
# Comprobar el tipo de datos de a
# Output: <class 'set'>
print(type(a))

¿Cómo cambiar un conjunto en Python?

El conjunto es mutable. Pero debido a que son desordenados, los índices no tienen sentido.

No podemos usar índices o cortes para acceder o cambiar elementos del conjunto. El conjunto no los admite.

Podemos usar el método add() para agregar un solo elemento, y el método update() para agregar varios elementos. El método update() puede tomartupla,lista,cadenau otro conjunto como parámetro. En todos los casos, evita la repetición.

# Inicializar my_set
mi_set = {1,3}
# Output: Elemento aleatorio
# Si descomentas la línea9fila,
# Obtendrás un error
# TypeError: 'set' object does not support indexing
#my_set[0]
# Añadir un elemento
# Salida: {1, 2, 3}
mi_set.add(2)
# Output: Elemento aleatorio
# Añadir varios elementos
# Salida: {1, 2, 3, 4}
mi_set.update([2,3,4])
# Output: Elemento aleatorio
# Añadir lista y conjunto
# Salida: {1, 2, 3, 4, 5, 6, 8}
mi_set.update([4,5], {1,6,8)
# Output: Elemento aleatorio

Al ejecutar el programa, la salida será:

{1, 3}
{1, 2, 3}
{1, 2, 3, 4}
{1, 2, 3, 4, 5, 6, 8}

¿Cómo eliminar elementos de un conjunto?

Se pueden usar los métodos discard() y remove() para eliminar elementos específicos del conjunto.

La única diferencia entre ambos es que si se utiliza discard() y el elemento no existe en el conjunto, se mantiene inmutable. Pero remove() lanzará un error en este caso.

El siguiente ejemplo ilustrará esto.

# Inicializar my_set
mi_set = {1, 3, 4, 5, 6}
# Output: Elemento aleatorio
# 抛弃一个元素
# Salida: {1, 3, 5, 6}
my_set.discard(4)
# Output: Elemento aleatorio
# Eliminar un elemento
# Salida: {1, 3, 5}
mi_set.remove(6)
# Output: Elemento aleatorio
# 抛弃一个元素
# 没有出现在 my_set
# Salida: {1, 3, 5}
my_set.discard(2)
# Output: Elemento aleatorio
# remove一个元素
# 没有出现在 my_set
# 如果没有注释#my_set.remove(2# Descartar un elemento
my_set.discard(
# Eliminar un elemento 2
# No se encuentra en my_set2)

# Si no hay comentario #my_set.remove(

),

# Se lanzará un error.

# Inicializar my_set
# Output: KeyError:
#my_set.remove(
# Output: Elemento aleatorio
Del mismo modo, podemos usar el método pop() para eliminar y devolver un proyecto.
Los conjuntos son desordenados, no se puede determinar qué proyecto se eliminará. Esto es completamente aleatorio.
Podemos usar el método clear() para eliminar todos los elementos de un conjunto.
# Output: Conjunto de elementos únicos
my_set = set("HelloWorld")
# Pop un elemento
# Output: Elemento aleatorio
# Output: Elemento aleatorio
print(my_set.pop())
# Pop elemento aleatorio
# Output: Elemento aleatorio

my_set.pop()

# Borrar my_set

# Output: set()

my_set.clear()1, 2, 3, 4, 5}
print(my_set)4, 5, 6, 7, 8}

Operaciones de conjuntos de Python

Los conjuntos se pueden usar para realizar operaciones matemáticas de conjuntos, como la unión, la intersección, la diferencia y la diferencia simétrica. Se pueden realizar mediante operadores o métodos...

Consideremos los siguientes dos conjuntos para las siguientes operaciones.

# 初始化 A y B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
>>> A = {
# Salida: {1, 2, 3, 4, 5, 6, 7, 8}
>>> B = {

Prueba los siguientes ejemplos en el shell de Python.

unión de conjuntos
La unión de A y B es el conjunto de todos los elementos de ambos conjuntos.
{1, 2, 3, 4, 5, 6, 7, 8}
La unión se realiza utilizando el operador |. También se puede realizar utilizando la función union().
# Uso de | operador
{1, 2, 3, 4, 5, 6, 7, 8}

print(A | B)

>>> B# Uso de la función union>>> A.union(B)# Uso de la función de unión en B

>>> B.union(A)

# 初始化 A y B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
intersección de conjuntos
La intersección es un grupo de elementos que ambos conjuntos tienen en común.4, 5}
El punto de intersección se realiza utilizando el operador &. La función intersection() puede realizar la misma operación.

Prueba los siguientes ejemplos en el shell de Python.

# Uso de & operador
# Output: {
{4, 5}
print(A & B)
# Uso de la función de intersección en A
{4, 5}

>>> A.intersection(B)

# Uso de la función de intersección en B->>> B.intersection(A)-diferencia de conjuntos

La diferencia entre A y B (A -La diferencia se realiza utilizando. Los elementos en A pero no en B forman un grupo. Los elementos en B) son los que solo están en A pero no en B. Del mismo modo, B

# 初始化 A y B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
# Uso de la función de diferencia en A - operador
# Output: {1, 2, 3}
print(A - B)

Prueba los siguientes ejemplos en el shell de Python.

# Uso de la función de diferencia en A
>>> A.difference(B)
{1, 2, 3}
# En B-运算符符
>>>运算符符 - >>> B
{8, 6, 7}
A
# Usar la función diferencia en B
{8, 6, 7}

>>> B.difference(A)

Diferencia simétrica de conjunto

La diferencia simétrica entre A y B es un grupo de elementos que están en A y B, pero no en ambos.

# 初始化 A y B
A = {1, 2, 3, 4, 5}
B = {4, 5, 6, 7, 8}
# Usar el operador ^
# Salida: {1, 2, 3, 6, 7, 8}
print(A ^ B)

Prueba los siguientes ejemplos en el shell de Python.

# Usar la función symmetric_difference en A
>>> A.symmetric_difference(B)
{1, 2, 3, 6, 7, 8}
# Usar la función symmetric_difference en B
>>> B.symmetric_difference(A)
{1, 2, 3, 6, 7, 8}

Métodos de conjunto diferentes de Python

Hay muchos métodos de conjunto en Python, algunos de los cuales ya se han utilizado. Esta es una lista de todos los métodos disponibles para el objeto set.

Métodos de Set de Python
MétodoDescripción
add()Añadir un elemento al conjunto
clear()Eliminar todos los elementos del conjunto
copy()Devolver una copia del conjunto
difference()Devolver la diferencia de dos o más conjuntos como un nuevo conjunto
difference_update()Eliminar todos los elementos de otro conjunto de este conjunto
discard()Si el elemento es miembro, eliminarlo del conjunto. (Si el elemento no está en el conjunto, no se realiza ninguna operación)
intersection()Devolver la intersección de dos conjuntos como un nuevo conjunto
intersection_update()Actualizar el conjunto con la intersección de sí mismo y otro
isdisjoint()True si el punto de intersección de dos conjuntos está vacío, devuelve 
issubset()Devolver True si otro conjunto contiene este conjunto
issuperset()Devolver True si este conjunto contiene otro conjunto
pop()Eliminar y devolver un elemento arbitrario del set. Aumenta KeyError si el conjunto está vacío
remove()Eliminar un elemento del conjunto. Si el elemento no es miembro, lanza un KeyError
symmetric_difference()Devolver la diferencia simétrica de dos conjuntos como un nuevo conjunto
symmetric_difference_update()Actualizar un conjunto con la diferencia simétrica de sí mismo y otro
union()Devolver la unión del conjunto en el nuevo conjunto
update()Actualizar el conjunto con la unión de sí mismo y otros elementos

Otras operaciones de conjuntos

Pruebas de membresía del conjunto

Podemos usar la palabra clave in para probar si un elemento existe en el conjunto.

# Inicializar my_set
my_set = set("apple")
# Verificar si "a" existe
# Salida: True
print('a' in my_set)
# Verificar si "p" existe
# Salida: False
print('p' not in my_set)

Recorrer el conjunto

Con un bucle for, podemos recorrer cada elemento del conjunto.

>>> for letter in set("apple"):
... print(letter)
...    
a
p
e
l

Conjunto y funciones integradas

Funciones integradas como all(), any(), enumerate(), len(), max(), min(), sort(), sum() y otras se utilizan comúnmente para ejecutar diferentes tareas junto con set.

Funciones integradas
FunciónDescripción
all()

Si todos los elementos del conjunto son true (o el conjunto está vacío), devuelve True.

any()

Si cualquier elemento del conjunto es true, devuelve True. Si el conjunto está vacío, devuelve False.

enumerate()Devuelve un objeto de enumeración. Contiene pares de índice y valor de todos los elementos.
len()Devuelve la longitud del conjunto (número de elementos).
max()Devuelve el elemento más grande del conjunto.
min()Devuelve el elemento más pequeño del conjunto.
sorted()Devuelve una nueva lista ordenada de los elementos del conjunto (sin ordenar el conjunto en sí).
sum()Devuelve la suma total de todos los elementos del conjunto.

Python Frozenset

Frozenset es una nueva clase con características de conjunto, pero una vez asignada, sus elementos no pueden cambiarse. Los tuplos son listas inmutables, mientras que los conjuntos congelados son conjuntos inmutables.

Los conjuntos mutables no son hashables, por lo que no se pueden usar como claves de diccionario. Por otro lado, el frozenset es hashable y se puede usar como clave de diccionario.

Se puede usar la funciónFrozenset()CreaciónFrozensets.

Este tipo de datos admite métodos como copy(), difference(), intersection(), isdisjoint(), issubset(), issuperset(), symmetric_difference() y union(). Debido a su inmutabilidad, no hay métodos para agregar o eliminar elementos.

# 初始化 A y B
A = frozenset([1, 2, 3, 4])
B = frozenset([3, 4, 5, 6])

Pruebe estos ejemplos en el shell de Python.

>>> A.isdisjoint(B)
False
>>> A.difference(B)
frozenset({1, 2)
>>> A | B
frozenset({1, 2, 3, 4, 5, 6)
>>> A.add(3)
...
AttributeError: El objeto 'frozenset' no tiene el atributo 'add'