¿Qué es un conjunto en Python y cómo crear uno?
El conjunto de Python es un literal único para filtrar valores distintos en una lista o una matriz de elementos. A diferencia de una lista, diccionario o tupla de Python, no acepta duplicados. Por tanto, puede ser una valiosa herramienta de limpieza de datos.
Pero, ¿cómo puedes crear un conjunto y usarlo en Python? Lo explicaremos en esta publicación.
Características de los conjuntos de Python
Además de no aceptar duplicados, un conjunto literal tiene otras características que lo diferencian de otros tipos de datos. Estas son algunas de sus características:
- Es inmutable: eso significa que no puede cambiar los valores de un conjunto una vez que lo crea.
- Un literal de conjunto devuelve una disposición dinámica cada vez que crea uno. En esencia, los elementos de un conjunto están desordenados.
- Debido a que presenta elementos desordenados, a diferencia de los literales de lista y diccionario, no puede obtener los valores de un conjunto por sus índices.
Cómo crear y usar un conjunto de Python
Ahora que conoce las características básicas de un conjunto de Python. Veamos algunas de las formas en que puede usarlo en su programa.
Utiliza llaves para crear un conjunto en Python. Entonces, un conjunto es una lista de elementos entre llaves separados por comas:
mySet = {1, 2, "MUO", "Google"}
print(mySet)
Output: {1, 2, "MUO", "Google"}
También puede convertir cualquier otro tipo de datos en un conjunto. Por ejemplo, el siguiente código convierte una lista en un conjunto:
myList = [1, 2, "MUO", "Google"]
mySet = set(myList)
print(mySet)
Output: {1, 2, "MUO", "Google"}
Para estar seguro, puede verificar el tipo de datos de mySet :
myList = [1, 2, "MUO", "Google"]
mySet = set(myList)
print(type(mySet))
Output: <class 'set'>
Como mencionamos anteriormente, un conjunto no acepta duplicados. Esa función puede resultar útil cuando desee limpiar una matriz eliminando valores duplicados.
El siguiente código elimina los duplicados en una lista y presenta el resultado como un conjunto de Python:
myList = [1, 2, 2 "MUO", "MUO", "Google", "Google"]
mySet = set(myList)
print(mySet)
Output: {1, 2, 'MUO', 'Google'}
Para demostrar aún más la función de filtrado de un conjunto, cuando imprime la longitud de un conjunto, no cuenta los valores duplicados:
mySet = {1, 2, 2, "MUO", "MUO", "Google", "Google"}
print(len(mySet))
Output: 4
Para ver un mejor caso de uso de un conjunto, eliminemos los duplicados en la siguiente matriz. Es como consultar las claves únicas en una matriz.
Para hacer esto, convierta un diccionario en un conjunto:
myDiction = {
"Mango":2, "Orange":2, "carrot":2, "MUO":"tech",
"MUO":"web", "Google":"search", "Google":"engine"
}
uniqueSet = set(myDiction)
print("These are the unique keys: {}".format(uniqueSet))
Output: These are the unique keys: {'Google', 'Mango', 'MUO', 'Orange', 'carrot'}
La conversión anterior elimina automáticamente los elementos duplicados de la matriz.
Puede modificar el código anterior usando un bucle for para hacerlo más claro:
for uniques in uniqueSet:
print(uniques)
También puede unir dos conjuntos con el método union () :
setA = {1, 3, 5}
setB = {1, 4, 6}
newSet = setA.union(setB)
print(newSet)
Output: {1, 3, 4, 5, 6}
Sin embargo, el código anterior une los dos conjuntos y elimina los valores duplicados.
Alternativamente, puede utilizar la tubería | función para unir conjuntos en Python:
setA = {1, 3, 5}
setB = {1, 4, 6}
newSet = setA|setB
print(newSet)
Output: {1, 3, 4, 5, 6}
También puede encontrar la diferencia entre dos conjuntos en Python:
setA = {1, 3, 5}
setB = {2, 4, 5,}
print(setA.difference(setB))
Output: {1, 3}
Puede encontrar la diferencia simétrica entre los conjuntos A y B. Este método devuelve los elementos de cualquier conjunto pero excluye sus intersecciones. Veamos cómo funciona esto:
setA = {1, 3, 5}
setB = {2, 4, 5,}
print(setA^setB)
Output: {1, 2, 3, 4}
Alternativamente, puede usar el método symmetric_difference () :
setA = {1, 3, 5}
setB = {2, 4, 5,}
print(setA.symmetric_difference(setB))
Output: {1, 2, 3, 4}
Veamos también cómo puede encontrar la intersección de conjuntos a continuación:
setA = {1, 3, 5}
setB = {1, 4, 6}
setC = {1, 5, 4}
newSet = setA.intersection(setB, setC)
print(newSet)
Output: {1}
Si bien puede agregar a una lista en Python , no puede hacer lo mismo para un conjunto de Python. Sin embargo, puede agregar un elemento al final de un conjunto usando la función agregar .
Pero la función de adición de Python acepta un argumento, por lo que solo puede agregar una tupla a un conjunto. Esto devuelve un conjunto anidado:
setA = {1, 3, 5}setC = {1, 3}
newSet = 1, 6
setC.add(newSet)
print(setC)
Output: {1, (1, 6), 3}
El conjunto de Python usa el método isdisjoint () para verificar si dos conjuntos están desarticulados. Luego devuelve un booleano:
setA = {1, 3, 5}
setB = {1, 4, 6}
findDisjoint = setA.isdisjoint(setB)
print("It's {} that setA is a disjoint of B".format(findDisjoint))
Output: It's False that setA is a disjoint of B
Para comprobar si un conjunto es un subconjunto de otro, reemplace isdisjoint () con issubset () :
findSubset = setA.issubset(setB)
Puede eliminar un elemento de un conjunto:
setA = {1, 3, 5}
setA.remove(5)
print(setA)
Output: {1, 3}
El método clear () borra los elementos de un conjunto y devuelve un conjunto vacío:
setA = {1, 3, 5}
setA.clear()
print(setA)
Output: set()
Puede eliminar un elemento arbitrario de un conjunto y devolver su valor utilizando el método set.pop () :
setA = {1, 3, 5}
print(setA.pop())
También puede actualizar un conjunto de Python con el método update ():
setA = {1, 'b'}
setB = {2, 4, 5,}
print(setA.update(setB))
print(setA)
Output: {1, 2, 4, 5, 'b'}
Juega con conjuntos de Python
Aunque hemos visto cómo se puede usar un conjunto en Python, todavía hay otras formas prácticas de aplicarlo en su código. Como ha visto, incluso puede resultar útil al limpiar datos con Python.
Además de un conjunto, otros tipos de datos o matrices de Python tienen muchos usos y diversas aplicaciones. Trate de jugar con ellos para dominarlos mejor.