Conjuntos de Python

En Python, un Conjunto es una colección desordenada de tipos de datos que es iterable, mutable y no tiene elementos duplicados. El orden de los elementos en un conjunto no está definido, aunque puede constar de varios elementos. La principal ventaja de usar un conjunto, a diferencia de una lista, es que tiene un método altamente optimizado para verificar si un elemento específico está contenido en el conjunto.

Crear un conjunto

Los conjuntos se pueden crear utilizando la función integrada set() con un objeto iterable o una secuencia colocando la secuencia entre llaves, separadas por una ‘coma’.

Nota: un conjunto no puede tener elementos mutables como una lista o un diccionario, ya que es mutable.  

Python3

# Python program to demonstrate
# Creation of Set in Python
 
# Creating a Set
set1 = set()
print("Initial blank Set: ")
print(set1)
 
# Creating a Set with
# the use of a String
set1 = set("GeeksForGeeks")
print("\nSet with the use of String: ")
print(set1)
 
# Creating a Set with
# the use of Constructor
# (Using object to Store String)
String = 'GeeksForGeeks'
set1 = set(String)
print("\nSet with the use of an Object: " )
print(set1)
 
# Creating a Set with
# the use of a List
set1 = set(["Geeks", "For", "Geeks"])
print("\nSet with the use of List: ")
print(set1)
Producción

Initial blank Set: 
set()

Set with the use of String: 
{'e', 'r', 'G', 's', 'F', 'k', 'o'}

Set with the use of an Object: 
{'e', 'r', 'G', 's', 'F', 'k', 'o'}

Set with the use of List: 
{'Geeks', 'For'}

Un conjunto contiene solo elementos únicos, pero en el momento de la creación del conjunto, también se pueden pasar varios valores duplicados. El orden de los elementos en un conjunto no está definido y no se puede modificar. El tipo de elementos en un conjunto no necesita ser el mismo, también se pueden pasar al conjunto varios valores de tipos de datos mezclados. 

Python3

# Creating a Set with
# a List of Numbers
# (Having duplicate values)
set1 = set([1, 2, 4, 4, 3, 3, 3, 6, 5])
print("\nSet with the use of Numbers: ")
print(set1)
 
# Creating a Set with
# a mixed type of values
# (Having numbers and strings)
set1 = set([1, 2, 'Geeks', 4, 'For', 6, 'Geeks'])
print("\nSet with the use of Mixed Values")
print(set1)
Producción

Set with the use of Numbers: 
{1, 2, 3, 4, 5, 6}

Set with the use of Mixed Values
{1, 2, 'For', 4, 6, 'Geeks'}

Crear un conjunto con otro método

Python3

# Another Method to create sets in Python3
 
# Set containing numbers
my_set = {1, 2, 3}
 
print(my_set)
 
# This code is contributed by sarajadhav12052009
Producción

{1, 2, 3}

Adición de elementos a un conjunto

Usando el método agregar()

Los elementos se pueden agregar al conjunto mediante el uso de la función integrada add() . Solo se puede agregar un elemento a la vez al conjunto usando el método add(), los bucles se usan para agregar varios elementos a la vez con el uso del método add().

Nota: las listas no se pueden agregar a un conjunto como elementos porque las listas no se pueden modificar, mientras que las tuplas se pueden agregar porque las tuplas son inmutables y, por lo tanto, se pueden modificar. 

Python3

# Python program to demonstrate
# Addition of elements in a Set
 
# Creating a Set
set1 = set()
print("Initial blank Set: ")
print(set1)
 
# Adding element and tuple to the Set
set1.add(8)
set1.add(9)
set1.add((6, 7))
print("\nSet after Addition of Three elements: ")
print(set1)
 
# Adding elements to the Set
# using Iterator
for i in range(1, 6):
    set1.add(i)
print("\nSet after Addition of elements from 1-5: ")
print(set1)
Producción

Initial blank Set: 
set()

Set after Addition of Three elements: 
{8, 9, (6, 7)}

Set after Addition of elements from 1-5: 
{1, 2, 3, (6, 7), 4, 5, 8, 9}

Usando el método de actualización()

Para la adición de dos o más elementos se utiliza el método Update(). El método update() acepta listas, strings, tuplas y otros conjuntos como argumentos. En todos estos casos se evita la duplicación de elementos.

Python3

# Python program to demonstrate
# Addition of elements in a Set
 
# Addition of elements to the Set
# using Update function
set1 = set([4, 5, (6, 7)])
set1.update([10, 11])
print("\nSet after Addition of elements using Update: ")
print(set1)
Producción

Set after Addition of elements using Update: 
{4, 5, (6, 7), 10, 11}

Acceso a un conjunto

No se puede acceder a los elementos del conjunto haciendo referencia a un índice, dado que los conjuntos no están ordenados, los elementos no tienen índice. Pero puede recorrer los elementos del conjunto usando un bucle for, o preguntar si un valor específico está presente en un conjunto, usando la palabra clave in.

Python3

# Python program to demonstrate
# Accessing of elements in a set
 
# Creating a set
set1 = set(["Geeks", "For", "Geeks"])
print("\nInitial set")
print(set1)
 
# Accessing element using
# for loop
print("\nElements of set: ")
for i in set1:
    print(i, end=" ")
 
# Checking the element
# using in keyword
print("Geeks" in set1)
Producción

Initial set
{'For', 'Geeks'}

Elements of set: 
For Geeks True

Eliminar elementos del Conjunto

Usando el método remove() o el método descarte():

Los elementos se pueden eliminar del conjunto mediante la función remove() incorporada, pero surge un KeyError si el elemento no existe en el conjunto. Para eliminar elementos de un conjunto sin KeyError, use descartar(), si el elemento no existe en el conjunto, permanece sin cambios.

Python3

# Python program to demonstrate
# Deletion of elements in a Set
 
# Creating a Set
set1 = set([1, 2, 3, 4, 5, 6,
            7, 8, 9, 10, 11, 12])
print("Initial Set: ")
print(set1)
 
# Removing elements from Set
# using Remove() method
set1.remove(5)
set1.remove(6)
print("\nSet after Removal of two elements: ")
print(set1)
 
# Removing elements from Set
# using Discard() method
set1.discard(8)
set1.discard(9)
print("\nSet after Discarding two elements: ")
print(set1)
 
# Removing elements from Set
# using iterator method
for i in range(1, 5):
    set1.remove(i)
print("\nSet after Removing a range of elements: ")
print(set1)
Producción

Initial Set: 
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}

Set after Removal of two elements: 
{1, 2, 3, 4, 7, 8, 9, 10, 11, 12}

Set after Discarding two elements: 
{1, 2, 3, 4, 7, 10, 11, 12}

Set after Removing a range of elements: 
{7, 10, 11, 12}

Usando el método pop():

La función Pop() también se puede usar para eliminar y devolver un elemento del conjunto, pero solo elimina el último elemento del conjunto. 

Nota: si el conjunto no está ordenado, entonces no existe tal manera de determinar qué elemento aparece utilizando la función pop(). 

Python3

# Python program to demonstrate
# Deletion of elements in a Set
 
# Creating a Set
set1 = set([1, 2, 3, 4, 5, 6,
            7, 8, 9, 10, 11, 12])
print("Initial Set: ")
print(set1)
 
# Removing element from the
# Set using the pop() method
set1.pop()
print("\nSet after popping an element: ")
print(set1)
Producción

Initial Set: 
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}

Set after popping an element: 
{2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}

Usando el método clear():

Para eliminar todos los elementos del conjunto, se utiliza la función clear(). 

Python3

#Creating a set
set1 = set([1,2,3,4,5])
print("\n Initial set: ")
print(set1)
 
 
# Removing all the elements from
# Set using clear() method
set1.clear()
print("\nSet after clearing all the elements: ")
print(set1)
Producción

 Initial set: 
{1, 2, 3, 4, 5}

Set after clearing all the elements: 
set()

Los conjuntos congelados en Python son objetos inmutables que solo admiten métodos y operadores que producen un resultado sin afectar el conjunto o conjuntos congelados a los que se aplican. Si bien los elementos de un conjunto se pueden modificar en cualquier momento, los elementos del conjunto congelado siguen siendo los mismos después de la creación. 

Si no se pasan parámetros, devuelve un conjunto congelado vacío.  

Python3

# Python program to demonstrate
# working of a FrozenSet
 
# Creating a Set
String = ('G', 'e', 'e', 'k', 's', 'F', 'o', 'r')
 
Fset1 = frozenset(String)
print("The FrozenSet is: ")
print(Fset1)
 
# To print Empty Frozen Set
# No parameter is passed
print("\nEmpty FrozenSet: ")
print(frozenset())
Producción

The FrozenSet is: 
frozenset({'o', 'G', 'e', 's', 'r', 'F', 'k'})

Empty FrozenSet: 
frozenset()

Encasillar objetos en conjuntos

Python3

# Typecasting Objects in Python3 into sets
 
# Typecasting list into set
my_list = [1, 2, 3, 3, 4, 5, 5, 6, 2]
my_set = set(my_list)
print("my_list as a set: ", my_set)
 
# Typecasting string into set
my_str = "GeeksforGeeks"
my_set1 = set(my_str)
print("my_str as a set: ", my_set1)
 
# Typecasting dictionary into set
my_dict = {1: "One", 2: "Two", 3: "Three"}
my_set2 = set(my_dict)
print("my_dict as a set: ", my_set2)
 
# This code is contributed by sarajadhav12052009
Producción

my_list as a set:  {1, 2, 3, 4, 5, 6}
my_str as a set:  {'f', 'G', 'r', 'o', 's', 'k', 'e'}
my_dict as a set:  {1, 2, 3}

Establecer métodos

Función Descripción
agregar() Añade un elemento a un conjunto.
retirar() Elimina un elemento de un conjunto. Si el elemento no está presente en el conjunto, genera un KeyError
clear() Elimina todos los elementos de un conjunto.
Copiar() Devuelve una copia superficial de un conjunto.
estallido() Elimina y devuelve un elemento de conjunto arbitrario. Aumentar KeyError si el conjunto está vacío
actualizar() Actualiza un conjunto con la unión de sí mismo y otros
Unión() Devuelve la unión de conjuntos en un nuevo conjunto
diferencia() Devuelve la diferencia de dos o más conjuntos como un nuevo conjunto
diferencia_actualizar() Elimina todos los elementos de otro conjunto de este conjunto
desechar() Elimina un elemento del conjunto si es un miembro. (No hacer nada si el elemento no está en conjunto)
intersection() Devuelve la intersección de dos conjuntos como un nuevo conjunto
intersección_actualizar() Actualiza el conjunto con la intersección de sí mismo y otro
es disjunto() Devuelve True si dos conjuntos tienen una intersección nula
issubconjunto() Devuelve True si otro conjunto contiene este conjunto
essuperconjunto() Devuelve True si este conjunto contiene otro conjunto
diferencia_simétrica() Devuelve la diferencia simétrica de dos conjuntos como un nuevo conjunto
actualización_diferencia_simétrica() Actualiza un conjunto con la diferencia simétrica de sí mismo y otro

Artículos recientes sobre conjuntos de Python

Establecer programas

Enlaces útiles

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *