domingo, 14 de mayo de 2023

Conjunto en Python 3 y algunos métodos

Conjuntos en Python 3

En Python 3, un conjunto es una estructura de datos que representa una colección desordenada y no repetida de elementos. Los conjuntos se implementan utilizando la clase set. Algunas características importantes de los conjuntos en Python son las siguientes:

  1. Elementos únicos: Los conjuntos no permiten elementos duplicados. Si intentas agregar un elemento que ya está presente en el conjunto, no se realizará ninguna acción.
  2. No tienen orden: Los elementos en un conjunto no tienen un orden específico. Esto significa que no puedes acceder a los elementos de un conjunto mediante índices.
  3. Mutabilidad: Los conjuntos son mutables, lo que significa que puedes agregar, eliminar y actualizar elementos después de crear un conjunto.
  4. Operaciones de conjuntos: Python proporciona una variedad de operaciones de conjuntos incorporadas, como unión, intersección, diferencia y diferencia simétrica. Estas operaciones se pueden realizar utilizando operadores o métodos de conjuntos.

Aquí tienes algunos ejemplos de cómo trabajar con conjuntos en Python:

# Crear un conjunto vacío
conjunto_vacio = set()

# Crear un conjunto con elementos
conjunto = {1, 2, 3, 4, 5}

# Agregar elementos a un conjunto
conjunto.add(6)
conjunto.add(7)

# Eliminar un elemento de un conjunto
conjunto.remove(3)

# Verificar si un elemento está en el conjunto
if 4 in conjunto:
    print("El elemento 4 está en el conjunto")

# Unión de conjuntos
conjunto1 = {1, 2, 3}
conjunto2 = {3, 4, 5}
union = conjunto1 | conjunto2
# Otra forma: union = conjunto1.union(conjunto2)

# Intersección de conjuntos
interseccion = conjunto1 & conjunto2
# Otra forma: interseccion = conjunto1.intersection(conjunto2)

# Diferencia de conjuntos
diferencia = conjunto1 - conjunto2
# Otra forma: diferencia = conjunto1.difference(conjunto2)

# Diferencia simétrica de conjuntos
diferencia_simetrica = conjunto1 ^ conjunto2
# Otra forma: diferencia_simetrica = conjunto1.symmetric_difference(conjunto2)

Recuerda que, a diferencia de las listas o tuplas, los conjuntos no conservan el orden de inserción de los elementos y no admiten acceso mediante índices. Si necesitas un orden específico o acceso posicional, debes utilizar una estructura de datos diferente, como una lista o tupla.

Métodos en los conjuntos

En Python, la clase set proporciona varios métodos para trabajar con conjuntos. Aquí tienes una lista de los métodos más comunes utilizados con conjuntos:

  1. add(elemento): Agrega un elemento al conjunto.
  2. remove(elemento): Elimina un elemento específico del conjunto. Genera un error KeyError si el elemento no está presente.
  3. discard(elemento): Elimina un elemento del conjunto si está presente. No genera ningún error si el elemento no existe en el conjunto.
  4. pop(): Elimina y devuelve un elemento arbitrario del conjunto. Genera un error KeyError si el conjunto está vacío.
  5. clear(): Elimina todos los elementos del conjunto, dejándolo vacío.
  6. copy(): Crea una copia superficial del conjunto.
  7. union(conjunto1, conjunto2, ...): Devuelve un nuevo conjunto que es la unión de varios conjuntos. También se puede realizar utilizando el operador |.
  8. intersection(conjunto1, conjunto2, ...): Devuelve un nuevo conjunto que es la intersección de varios conjuntos. También se puede realizar utilizando el operador &.
  9. difference(conjunto): Devuelve un nuevo conjunto que contiene los elementos que están en el conjunto actual pero no en el conjunto especificado.
  10. symmetric_difference(conjunto): Devuelve un nuevo conjunto que contiene los elementos que están en el conjunto actual o en el conjunto especificado, pero no en ambos. También se puede realizar utilizando el operador ^.
  11. issubset(conjunto): Verifica si el conjunto actual es un subconjunto del conjunto especificado.
  12. issuperset(conjunto): Verifica si el conjunto actual es un superconjunto del conjunto especificado.
  13. isdisjoint(conjunto): Verifica si el conjunto actual y el conjunto especificado no tienen elementos en común.

Estos son solo algunos de los métodos disponibles en la clase set. Puedes encontrar más información sobre los conjuntos y sus métodos en la documentación oficial de Python.

Ejemplos de los métodos

Algunos ejemplos de los métodos anteriores se muestran a continuación:

add(elemento):

conjunto = {1, 2, 3}
conjunto.add(4)
print(conjunto)  # Resultado: {1, 2, 3, 4}

remove(elemento):

conjunto = {1, 2, 3}
conjunto.remove(2)
print(conjunto)  # Resultado: {1, 3}

discard(elemento):

conjunto = {1, 2, 3}
conjunto.discard(2)
conjunto.discard(4)
print(conjunto)  # Resultado: {1, 3}

pop():

conjunto = {1, 2, 3, 4, 5}
elemento = conjunto.pop()
print(elemento)  # Resultado: un elemento arbitrario del conjunto
print(conjunto)  # Resultado: el conjunto sin el elemento removido

clear():

conjunto = {1, 2, 3}
conjunto.clear()
print(conjunto)  # Resultado: set()

copy():

conjunto = {1, 2, 3}
copia = conjunto.copy()
print(copia)  # Resultado: {1, 2, 3}

union(conjunto1, conjunto2, ...)

conjunto1 = {1, 2, 3}
conjunto2 = {3, 4, 5}
union = conjunto1.union(conjunto2)
print(union)  # Resultado: {1, 2, 3, 4, 5}

intersection(conjunto1, conjunto2, ...)

conjunto1 = {1, 2, 3}
conjunto2 = {3, 4, 5}
interseccion = conjunto1.intersection(conjunto2)
print(interseccion)  # Resultado: {3}

difference(conjunto)

conjunto1 = {1, 2, 3, 4, 5}
conjunto2 = {3, 4}
diferencia = conjunto1.difference(conjunto2)
print(diferencia)  # Resultado: {1, 2, 5}

symmetric_difference(conjunto)

conjunto1 = {1, 2, 3}
conjunto2 = {3, 4}
diferencia_simetrica = conjunto1.symmetric_difference(conjunto2)
print(diferencia_simetrica)  # Resultado: {1, 2, 4}

issubset(conjunto)

conjunto1 = {1, 2}
conjunto2 = {1, 2, 3, 4, 5}
es_subconjunto = conjunto1.issubset(conjunto2)
print(es_subconjunto)  # Resultado: True

issuperset(conjunto)

conjunto1 = {1, 2, 3, 4, 5}
conjunto2 = {1, 2}
es_superconjunto = conjunto1.issuperset(conjunto2)
print(es_subconjunto)
Licencia Creative Commons
Conjuntos en Python 3 por Marco Polo Jácome Toss se distribuye bajo una Licencia Creative Commons Atribución-CompartirIgual 4.0 Internacional.