Tutorial de Python - Conjunto de tipos de datos

Jinku Hu 30 enero 2023
  1. Crear conjuntos de python
  2. Actualización del set de Python
  3. Eliminar elementos de un conjunto de Python
  4. Operaciones de set en Python
  5. Métodos de conjuntos de Python
  6. Otras operaciones del juego de Python
  7. Funciones incorporadas al set de Python
  8. Conjunto de fríos de Python
Tutorial de Python - Conjunto de tipos de datos

En esta sección, aprenderás a crear conjuntos en Python y a añadir y quitar elementos de los conjuntos.

Un conjunto contiene elementos únicos y es una lista de elementos desordenados.

Información
El set es un objeto mutable para que pueda añadir y eliminar elementos de un set.

Crear conjuntos de python

Un set en Python puede ser creado usando llaves {} y los ítems están separados por comas. También puede crear un conjunto usando el método incorporado set().

Los elementos de un conjunto pueden ser de diferentes tipos de datos. Los elementos de un conjunto deben ser inmutables. Por ejemplo, puede tener una tupla como elemento del conjunto pero no puede tener un conjunto o un diccionario o una lista como elementos del conjunto.

>>> x = {3, 5, 7, 2, 4, 5}		
>>> print(x)		#prints the set variable
{2, 3, 4, 5, 7}
>>> print(type(x))		#checking type of x
<class 'set'>

Podría utilizar el método set() con parámetros vacíos para crear una lista vacía. Si escribe {} para crear un objeto vacío, se interpreta como un diccionario:

>>> x = {}
>>> print(type(x))
<class 'dict'>

>>> x = set()
>>> print(type(x))
<class 'set'>

Actualización del set de Python

La indexación y el rebanado no pueden ser usados para cambiar elementos de un conjunto porque el set no es un tipo de datos ordenado.

Se puede añadir un solo elemento en un conjunto usando el método add(). Si quiere añadir más de un elemento en el conjunto, entonces tiene que usar el método update().

>>> s = {2, 4}
>>> print(s)
{2, 4}

>>> s.add(6)
>>> print(s)
{2, 4, 6}

>>> s.update([2, 4, 6])
>>> print(s)
{2, 4, 6}

>>> s.update([5,6], {7, 8, 9})
>>> print(s)
{2, 4, 5, 6, 7, 8, 9}

Eliminar elementos de un conjunto de Python

Para eliminar un elemento de un conjunto puede utilizar el método discard() o remove().

La diferencia entre estos métodos es que el método discard() no le preguntará nada si el elemento a eliminar no está en el conjunto, mientras que remove() generará un error si el elemento a eliminar no se encuentra.

>>> s = {2, 4, 5, 6, 7, 8, 9}
>>> print(s)
{2, 4, 5, 6, 7, 8, 9}

>>> s.discard(6)
>>> print(s)
{2, 4, 5, 7, 8, 9}

>>> s.remove(8)
>>> print(s)
{2, 4, 5, 7, 9}

>>> s.discard(6)		#no error
>>> s.remove(8)			#generated an error
Traceback (most recent call last):
  File "<pyshell#18>", line 1, in <module>
    s.remove(8)
KeyError: 8

También puede usar pop() para eliminar un elemento de un conjunto. pop() elimina y devuelve un elemento de un set arbitrario.

>>> s = set("Python")
>>> s
{'o', 'n', 'h', 'P', 'y', 't'}
>>> s.pop()
o
>>> s.pop()
n
>>> s
{'h', 'P', 'y', 't'}
>>> s.clear()
>>> print(s)
set()

Puede utilizar el método set clear() para borrar todos los elementos del conjunto.

>>> s = set("Python")
>>> s.clear()
>>> s
set()

Operaciones de set en Python

Puede realizar operaciones como union, intersection, difference y symmetric_difference.

Supongamos que tienes dos conjuntos x y y:

>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 10, 11, 12}

Unión

La unión de dos conjuntos resulta en un nuevo conjunto que contiene todos los elementos de ambos conjuntos.

Para realizar la operación de unión, puede utilizar el operador | o el método union().

>>> print(x | y)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}

#using union() method on x
>>> x.union(y)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
#union on y
>>> y.union(x)
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}

Intersección del set de Python

La intersección de dos sets da como resultado un nuevo set que contiene los elementos que son comunes en ambos sets.

Para realizar la operación de intersección, puede utilizar el operador & o el método intersection().

>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 2, 6, 1}
>>> print(x & y)
{1, 2, 6}

#using intersection() method on x
>>> x.intersection(y)
{1, 2, 6}
#intersection on y
>>> y.intersection(x)
{1, 2, 6}

Diferencia de los sets de Python

La diferencia de dos sets da como resultado un nuevo set que contiene elementos del primer set que no están presentes en el segundo set.

Por ejemplo, x - y son elementos de x no en y. De forma similar, y - x son elementos de y no en x.

Para realizar la diferencia, puede usar el operador - o el método difference().

>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 2, 6, 1}
>>> print(x - y)
{3, 4, 5}

#using difference() method on x
>>> x.difference(y)
{3, 4, 5}
#diference on y
>>> y.difference(x)
{8, 9, 7}

Python establece una diferencia simétrica

La diferencia simétrica de dos conjuntos resulta en un nuevo conjunto que contiene elementos que no son comunes en ambos conjuntos.

Para realizar la diferencia simétrica, puede utilizar el operador ^ o el método symmetric_difference().

>>> x = {1, 2, 3, 4, 5, 6}
>>> y = {7, 8, 9, 2, 6, 1}
>>> print(x ^ y)
{3, 4, 5, 7, 8, 9}

#using symmetric_difference() method on x
>>> x.symmetric_difference(y)
{3, 4, 5, 7, 8, 9}
#symmetric_diference on y
>>> y.symmetric_difference(x)
{3, 4, 5, 7, 8, 9}

Métodos de conjuntos de Python

La siguiente es la lista de métodos que se pueden aplicar a los conjuntos en Python:

Método Descripción
add() añadir un elemento a un conjunto
clear() limpiar los elementos del conjunto (limpia todo el conjunto)
copy() devolver la copia de un juego
difference() devuelve un nuevo set que contiene elementos del primer set que no están presentes en el segundo set.
difference_update() eliminar todos los elementos de otro conjunto del conjunto actual
discard() eliminar un elemento específico de un conjunto
intersection() devuelve un nuevo set que contiene las posiciones que son comunes en ambos sets.
intersection_update() actualizar un conjunto con la intersección de este conjunto con otro conjunto
isdisjoint() devuelve un True cuando dos conjuntos resultan en una intersección nula
issubset() devuelve un True cuando otro set tiene el set actual
issuperset() devolver un True cuando el conjunto actual tiene otro conjunto
pop() devolver un elemento de un conjunto
remove() eliminar un elemento específico de un conjunto. Si el elemento no está en el conjunto se generará un error.
symmetric_difference() devuelve un nuevo conjunto que contiene elementos que no son comunes en ambos conjuntos.
symmetric_difference_update() actualizar un set con la diferencia simétrica de este set con otro set
union() devuelve un nuevo set que contiene todos los elementos de ambos sets.
update() actualizar un conjunto con la unión de este conjunto con otro conjunto

Otras operaciones del juego de Python

Establecer la verificación de la membresía

La palabra clave in comprueba si un elemento es miembro del conjunto o no.

>>> s = set("Blue")
>>> print('o' in s)
False
>>> print('l' in s)
True

Iterar a través de un conjunto

Puedes iterar a través de un conjunto usando el bucle for:

for i in set("Blue"):
    print(i)

Resultado:

B
l
u
e

Funciones incorporadas al set de Python

Las siguientes son algunas de las funciones incorporadas que se pueden utilizar con los conjuntos para realizar diferentes tareas:

Funciones Descripción
all() devuelve True cuando todos los elementos del set son True. También devuelve True cuando el set está vacío.
any() devuelve True cuando cualquiera de los elementos del conjunto es True. Devuelve False cuando el set está vacío.
enumerate() devuelve el índice y el valor de todos los elementos del conjunto como una tupla. Devuelve un objeto “numerado”.
len() devuelve el número de posiciones de un set o la longitud del mismo.
set() definir un conjunto.
max() devuelva la posición máxima en el set.
min() devuelva el artículo mínimo del juego.
sorted() devuelve una lista ordenada de elementos de un conjunto.
sum() devolver la suma de todos los elementos del conjunto.

Conjunto de fríos de Python

Frozenset es un set especial cuyos elementos no pueden ser actualizados cuando se asignan una vez. Los frozensets son sets inmutables.

Como los sets son mutables, no puede utilizarlos como clave del diccionario, pero los sets congelados son inmutables, por lo tanto, puede utilizar los sets congelados como claves del diccionario.

Un frozenset puede crearse utilizando el método frozenset().

Los siguientes son algunos de los métodos soportados por frozenset:

  • copy()
  • diferencia()
  • intersección()
  • isdisjoint()
  • issubset()
  • issuperset()
  • symmetric_difference()
  • union()
>>> x = frozenset([2,6,3,9])
>>> y = frozenset([6,1,2,4])
>>> x.difference(y)
frozenset({9, 3})
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook