Conjuntos en Python

    Introducci贸n

    En Python, un conjunto es una estructura de datos que almacena elementos desordenados. Los elementos del conjunto tampoco est谩n indexados. Como una lista, un conjunto permite la adici贸n y eliminaci贸n de elementos. Sin embargo, hay algunas caracter铆sticas 煤nicas que definen un conjunto y lo separan de otras estructuras de datos:

    • Un conjunto no contiene elementos duplicados.
    • Los elementos del conjunto son inmutables, es decir, no se pueden cambiar, pero el conjunto en s铆 es mutable, es decir, se puede cambiar.
    • Dado que los elementos del conjunto no est谩n indexados, los conjuntos no admiten operaciones de segmentaci贸n o indexaci贸n.

    En este art铆culo, discutiremos las diversas operaciones que se pueden realizar en conjuntos en Python.

    C贸mo crear un conjunto

    Hay dos formas de crear conjuntos en Python.

    Podemos crear un conjunto pasando todos los elementos del conjunto dentro de llaves {} y separe los elementos usando comas (,). Un conjunto puede contener cualquier n煤mero de elementos y los elementos pueden ser de diferentes tipos, por ejemplo, enteros, cadenas, tuplas, etc. Sin embargo, un conjunto no acepta un elemento que sea mutable, por ejemplo, una lista, diccionario, etc. .

    A continuaci贸n, se muestra un ejemplo de c贸mo crear un conjunto en Python:

    num_set = {1, 2, 3, 4, 5, 6}
    print(num_set)
    

    Salida

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

    Acabamos de crear un conjunto de n煤meros. Tambi茅n podemos crear un conjunto de valores de cadena. Por ejemplo:

    string_set = {"Nicholas", "Michelle", "John", "Mercy"}
    print(string_set)
    

    Salida

    {'Michelle', 'Nicholas', 'John', 'Mercy'}
    

    Debe haber notado que los elementos en la salida anterior no est谩n ordenados de la misma manera que los agregamos al conjunto. La raz贸n de esto es que los art铆culos del set no est谩n ordenados. Si vuelve a ejecutar el mismo c贸digo, es posible que obtenga una salida con los elementos dispuestos en un orden diferente.

    Tambi茅n podemos crear un conjunto con elementos de diferentes tipos. Por ejemplo:

    mixed_set = {2.0, "Nicholas", (1, 2, 3)}
    print(mixed_set)
    

    Salida

    {2.0, 'Nicholas', (1, 2, 3)}
    

    Todos los elementos del conjunto anterior pertenecen a diferentes tipos.

    Tambi茅n podemos crear un conjunto a partir de una lista. Esto se puede hacer llamando al c贸digo integrado de Python set() funci贸n. Por ejemplo:

    num_set = set([1, 2, 3, 4, 5, 6])
    print(num_set)
    

    Salida

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

    Como se indic贸 anteriormente, los conjuntos no contienen elementos duplicados. Supongamos que nuestra lista tiene elementos duplicados, como se muestra a continuaci贸n:

    num_set = set([1, 2, 3, 1, 2])
    print(num_set)
    

    Salida

    {1, 2, 3}
    

    El conjunto elimin贸 los duplicados y devolvi贸 solo uno de cada elemento duplicado. Esto tambi茅n sucede cuando creamos un conjunto desde cero. Por ejemplo:

    num_set = {1, 2, 3, 1, 2}
    print(num_set)
    

    Salida

    {1, 2, 3}
    

    Nuevamente, el conjunto elimin贸 los duplicados y devolvi贸 solo uno de los elementos duplicados.

    La creaci贸n de un conjunto vac铆o es algo complicada. Si usa llaves vac铆as {} en Python, crea un diccionario vac铆o en lugar de un conjunto vac铆o. Por ejemplo:

    x = {}
    print(type(x))
    

    Salida

    <class 'dict'>
    

    Como se muestra en la salida, el tipo de variable x es un diccionario.

    Para crear un conjunto vac铆o en Python debemos usar el set() funci贸n sin pasar ning煤n valor para los par谩metros, como se muestra a continuaci贸n:

    x = set()
    print(type(x))
    

    Salida

    <class 'set'>
    

    La salida muestra que hemos creado un conjunto.

    Acceder a elementos del conjunto

    Python no nos proporciona una forma de acceder a un elemento de conjunto individual. Sin embargo, podemos usar un for bucle para recorrer todos los elementos de un conjunto. Por ejemplo:

    months = set(["Jan", "Feb", "March", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov", "Dec"])
    
    for m in months:
        print(m)
    

    Salida

    March
    Feb
    Dec
    Jan
    May
    Nov
    Oct
    Apr
    June
    Aug
    Sep
    July
    

    Tambi茅n podemos verificar la presencia de un elemento en un conjunto usando el in palabra clave como se muestra a continuaci贸n:

    months = set(["Jan", "Feb", "March", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov", "Dec"])
    
    print("May" in months)
    

    Salida

    True
    

    El c贸digo devolvi贸 “Verdadero”, lo que significa que el art铆culo se encontr贸 en el conjunto. Del mismo modo, la b煤squeda de un elemento que no existe en el conjunto devuelve “Falso”, como se muestra a continuaci贸n:

    months = set(["Jan", "Feb", "March", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov", "Dec"])
    
    print("Nicholas" in months)
    

    Salida

    False
    

    Como se esperaba, el c贸digo devolvi贸 “Falso”.

    Agregar elementos a un conjunto

    Python nos permite agregar nuevos elementos a un conjunto a trav茅s del add() funci贸n. Por ejemplo:

    months = set(["Jan", "March", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov", "Dec"])
    
    months.add("Feb")
    print(months)
    

    Salida

    {'Oct', 'Dec', 'Feb', 'July', 'May', 'Jan', 'June', 'March', 'Sep', 'Aug', 'Nov', 'Apr'}
    

    El elemento “Feb” se ha a帽adido correctamente al conjunto. Si fuera un conjunto de n煤meros, no habr铆amos pasado el nuevo elemento entre comillas como ten铆amos que hacer con una cadena. Por ejemplo:

    num_set = {1, 2, 3}
    num_set.add(4)
    print(num_set)
    

    Salida

    {1, 2, 3, 4}
    

    En la siguiente secci贸n, discutiremos c贸mo eliminar elementos de conjuntos.

    Eliminar elementos de un conjunto

    Python nos permite eliminar un elemento de un conjunto, pero sin usar un 铆ndice, ya que los elementos del conjunto no est谩n indexados. Los elementos se pueden eliminar utilizando el discard() o remove() m茅todos.

    Tenga en cuenta que el discard() El m茅todo no generar谩 un error si el elemento no se encuentra en el conjunto. Sin embargo, si el remove() se utiliza el m茅todo y no se encuentra el elemento, se generar谩 un error.

    Demostremos c贸mo eliminar un elemento usando el discard() m茅todo:

    num_set = {1, 2, 3, 4, 5, 6}
    num_set.discard(3)
    print(num_set)
    

    Salida

    {1, 2, 4, 5, 6}
    

    El elemento 3 se ha eliminado del conjunto.

    Del mismo modo, el remove() El m茅todo se puede utilizar de la siguiente manera:

    num_set = {1, 2, 3, 4, 5, 6}
    num_set.remove(3)
    print(num_set)
    

    Salida

    {1, 2, 4, 5, 6}
    

    Ahora, intentemos eliminar un elemento que no existe en el conjunto. Primero usemos el discard() m茅todo:

    num_set = {1, 2, 3, 4, 5, 6}
    num_set.discard(7)
    print(num_set)
    

    Salida

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

    La salida anterior muestra que el conjunto no se vio afectado de ninguna manera. Ahora veamos qu茅 sucede cuando usamos el remove() m茅todo en el mismo escenario:

    num_set = {1, 2, 3, 4, 5, 6}
    num_set.remove(7)
    print(num_set)
    

    Salida

    Traceback (most recent call last):
      File "C:Usersadminsets.py", line 2, in <module>
        num_set.remove(7)
    KeyError: 7
    

    El resultado muestra que el m茅todo gener贸 un error cuando intentamos eliminar un elemento que no est谩 en el conjunto.

    Con el pop() m茅todo, podemos eliminar y devolver un elemento. Dado que los elementos est谩n desordenados, no podemos decir ni predecir el elemento que se eliminar谩. Por ejemplo:

    num_set = {1, 2, 3, 4, 5, 6}
    print(num_set.pop())
    

    Salida

    1
    

    Puede utilizar el mismo m茅todo para eliminar un elemento y devolver los elementos que quedan en el conjunto. Por ejemplo:

    num_set = {1, 2, 3, 4, 5, 6}
    num_set.pop()
    print(num_set)
    

    Salida

    {2, 3, 4, 5, 6}
    

    Esos son los elementos que quedan en el conjunto.

    El Python clear() El m茅todo nos ayuda a eliminar todos los elementos de un conjunto. Por ejemplo:

    num_set = {1, 2, 3, 4, 5, 6}
    num_set.clear()
    print(num_set)
    

    Salida

    set()
    

    La salida es un vac铆o set() sin elementos en 茅l.

    Establecer uni贸n

    Suponga que tenemos dos conjuntos, A y B. La uni贸n de los dos conjuntos es un conjunto con todos los elementos de ambos conjuntos. Tal operaci贸n se logra a trav茅s de Python union() funci贸n.

    Aqu铆 hay un ejemplo:

    months_a = set(["Jan", "Feb", "March", "Apr", "May", "June"])
    months_b = set(["July", "Aug", "Sep", "Oct", "Nov", "Dec"])
    
    all_months = months_a.union(months_b)
    print(all_months)
    

    Salida

    {'Oct', 'Jan', 'Nov', 'May', 'Aug', 'Feb', 'Sep', 'March', 'Apr', 'Dec', 'June', 'July'}
    

    Tambi茅n se puede realizar una uni贸n en m谩s de dos conjuntos, y todos sus elementos se combinar谩n en un solo conjunto. Por ejemplo:

    x = {1, 2, 3}
    y = {4, 5, 6}
    z = {7, 8, 9}
    
    output = x.union(y, z)
    
    print(output)
    

    Salida

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

    Durante la operaci贸n de uni贸n, los duplicados se ignoran y solo se muestra uno de los elementos duplicados. Por ejemplo:

    x = {1, 2, 3}
    y = {4, 3, 6}
    z = {7, 4, 9}
    
    output = x.union(y, z)
    
    print(output)
    

    Salida

    {1, 2, 3, 4, 6, 7, 9}
    

    los | El operador tambi茅n se puede utilizar para encontrar la uni贸n de dos o m谩s conjuntos. Por ejemplo:

    months_a = set(["Jan","Feb", "March", "Apr", "May", "June"])
    months_b = set(["July", "Aug", "Sep", "Oct", "Nov", "Dec"])
    
    print(months_a | months_b)
    

    Salida

    {'Feb', 'Apr', 'Sep', 'Dec', 'Nov', 'June', 'May', 'Oct', 'Jan', 'July', 'March', 'Aug'}
    

    Si desea realizar una uni贸n en m谩s de dos conjuntos, separe los nombres de los conjuntos utilizando el | operador. Por ejemplo:

    x = {1, 2, 3}
    y = {4, 3, 6}
    z = {7, 4, 9}
    
    print(x | y | z)
    

    Salida

    {1, 2, 3, 4, 6, 7, 9}
    

    Establecer intersecci贸n

    Suponga que tiene dos conjuntos A y B. Su intersecci贸n es un conjunto con elementos que son comunes tanto en A como en B.

    La operaci贸n de intersecci贸n en conjuntos se puede lograr mediante el & operador o el intersection() m茅todo. Por ejemplo:

    Por ejemplo:

    x = {1, 2, 3}
    y = {4, 3, 6}
    
    print(x & y)
    

    Salida

    {3}
    

    Los dos conjuntos tienen 3 como elemento com煤n. Lo mismo tambi茅n se puede lograr con el intersection() m茅todo:

    x = {1, 2, 3}
    y = {4, 3, 6}
    
    z = x.intersection(y)
    print(z)
    

    Salida

    {3}
    

    En la siguiente secci贸n, discutiremos c贸mo determinar la diferencia entre conjuntos.

    Establecer diferencia

    Suponga que tiene dos conjuntos A y B. La diferencia de A y B (A – B) es el conjunto con todos los elementos que est谩n en A pero no en B. En consecuencia, (B – A) es el conjunto con todos los elementos B pero no en A.

    Para determinar las diferencias de conjuntos en Python, podemos usar el difference() funci贸n o la - operador. Por ejemplo:

    set_a = {1, 2, 3, 4, 5}
    set_b = {4, 5, 6, 7, 8}
    diff_set = set_a.difference(set_b)
    print(diff_set)
    

    Salida

    {1, 2, 3}
    

    en el gui贸n anterior, solo los primeros tres elementos del conjunto set_a no est谩n disponibles en el set set_b, por lo tanto, forman nuestra salida. El menos - El operador tambi茅n se puede utilizar para encontrar la diferencia entre los dos conjuntos como se muestra a continuaci贸n:

    set_a = {1, 2, 3, 4, 5}
    set_b = {4, 5, 6, 7, 8}
    print(set_a - set_b)
    

    Salida

    {1, 2, 3}
    

    los diferencia sim茅trica de los conjuntos A y B es el conjunto con todos los elementos que est谩n en A y B excepto los elementos que son comunes en ambos conjuntos. Se determina utilizando Python symmetric_difference() m茅todo o el ^ operador. Por ejemplo:

    set_a = {1, 2, 3, 4, 5}
    set_b = {4, 5, 6, 7, 8}
    symm_diff = set_a.symmetric_difference(set_b)
    print(symm_diff)
    

    Salida

    {1, 2, 3, 6, 7, 8}
    

    La diferencia sim茅trica tambi茅n se puede encontrar de la siguiente manera:

    set_a = {1, 2, 3, 4, 5}
    set_b = {4, 5, 6, 7, 8}
    print(set_a ^ set_b)
    

    Salida

    {1, 2, 3, 6, 7, 8}
    

    Establecer comparaci贸n

    Podemos comparar conjuntos en funci贸n de los elementos que tengan. De esta manera, podemos saber si un conjunto es un superconjunto o un subconjunto de otro conjunto. El resultado de tal comparaci贸n ser谩 True o False.

    Para comprobar si el conjunto A es un subconjunto del conjunto B, podemos usar la siguiente operaci贸n:

    A <= B
    

    Para comprobar si B es un superconjunto de A, podemos usar la siguiente operaci贸n:

    B >= A
    

    Por ejemplo:

    months_a = set(["Jan", "Feb", "March", "Apr", "May", "June"])
    months_b = set(["Jan", "Feb", "March", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov", "Dec"])
    
    subset_check = months_a <= months_b
    superset_check = months_b >= months_a
    
    print(subset_check)
    print(superset_check)
    

    Salida

    True
    True
    

    El subconjunto y el superconjunto tambi茅n se pueden comprobar utilizando issubset() y issuperset() m茅todos como se muestra a continuaci贸n:

    months_a = set(["Jan","Feb", "March", "Apr", "May", "June"])
    months_b = set(["Jan","Feb", "March", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov", "Dec"])
    
    subset_check = months_a.issubset(months_b)
    superset_check = months_b.issuperset(months_a)
    
    print(subset_check)
    print(superset_check)
    

    Salida

    True
    True
    

    En la siguiente secci贸n, analizaremos algunos de los m茅todos de conjuntos m谩s utilizados proporcionados por Python que a煤n no hemos discutido.

    Establecer m茅todos

    Python viene con numerosos m茅todos de conjuntos integrados, incluidos los siguientes:

    Copiar()

    Este m茅todo devuelve una copia del conjunto en cuesti贸n. Por ejemplo:

    string_set = {"Nicholas", "Michelle", "John", "Mercy"}
    x = string_set.copy()
    
    print(x)
    

    Salida

    {'John', 'Michelle', 'Nicholas', 'Mercy'}
    

    La salida muestra que x es una copia del set string_set.

    isdisjoint ()

    Este m茅todo comprueba si los conjuntos en cuesti贸n tienen una intersecci贸n o no. Si los conjuntos no tienen elementos comunes, este m茅todo devuelve True, de lo contrario vuelve False. Por ejemplo:

    names_a = {"Nicholas", "Michelle", "John", "Mercy"}
    names_b = {"Jeff", "Bosco", "Teddy", "Milly"}
    
    x = names_a.isdisjoint(names_b)
    print(x)
    

    Salida

    True
    

    Los dos conjuntos no tienen elementos comunes, por lo que la salida es True.

    len ()

    Este m茅todo devuelve la longitud de un conjunto, que es el n煤mero total de elementos del conjunto. Por ejemplo:

    names_a = {"Nicholas", "Michelle", "John", "Mercy"}
    
    print(len(names_a))
    

    Salida

    4
    

    La salida muestra que el conjunto tiene una longitud de 4.

    Set Python Frozen

    Frozenset es una clase con las caracter铆sticas de un conjunto, pero una vez asignados sus elementos, no se pueden modificar. Las tuplas pueden verse como listas inmutables, mientras que los conjuntos congelados pueden verse como conjuntos inmutables.

    Los conjuntos son mutables y no modificables, lo que significa que no podemos usarlos como claves de diccionario. Los Frozensets son hash y podemos usarlos como claves de diccionario.

    Para crear conjuntos congelados, usamos el frozenset() m茅todo. Creemos dos conjuntos congelados, X y Y:

    X = frozenset([1, 2, 3, 4, 5, 6])
    Y = frozenset([4, 5, 6, 7, 8, 9])
    
    print(X)
    print(Y)
    

    Salida

    frozenset({1, 2, 3, 4, 5, 6})
    frozenset({4, 5, 6, 7, 8, 9})
    

    Los frozensets admiten el uso de m茅todos de conjunto de Python como copy(), difference(), symmetric_difference(), isdisjoint(), issubset(), intersection(), issuperset()y union().

    Conclusi贸n

    El art铆culo proporciona una introducci贸n detallada a los conjuntos en Python. La definici贸n matem谩tica de conjuntos es la misma que la definici贸n de conjuntos en Python. Un conjunto es simplemente una colecci贸n de art铆culos que no est谩n ordenados. El conjunto en s铆 es mutable, pero los elementos del conjunto son inmutables. Sin embargo, podemos agregar y eliminar elementos de un conjunto libremente. En la mayor铆a de las estructuras de datos, los elementos est谩n indexados. Sin embargo, los elementos del conjunto no est谩n indexados. Esto hace que sea imposible para nosotros realizar operaciones que se dirijan a elementos espec铆ficos del conjunto.

     

    Etiquetas:

    Deja una respuesta

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