Método copy() de conjuntos en Python

La función copy() en Python se utiliza para crear una copia superficial (shallow copy) de un conjunto (set). Esto significa que se crea un nuevo conjunto que contiene los mismos elementos que el conjunto original, pero los elementos en sí mismos no se copian. La copia es independiente del conjunto original, lo que significa que puedes realizar cambios en la copia sin afectar al conjunto original y viceversa. Veamos una lección detallada sobre cómo usar copy() en conjuntos con ejemplos:

Página de referencia: resume la firma y el uso de un método concreto. El valor está en el patrón: qué recibe, qué devuelve y en qué situación lo usarías.

Copia el ejemplo al editor, cámbiale los argumentos y comprueba la salida.


Copia de un conjunto simple

Ejemplo

    copia_set.add(6)
# V
# Verificar que el conjunto original no se ve afectado
print("Conjunto original:", original_set)  # Conjunto original: {1, 2, 3, 4, 5}
print("Copia del conjunto:", copia_set)      # Copia del conjunto: {1, 2, 3, 4, 5, 6}
  

En este ejemplo, copia_set es una copia del conjunto original_set . Cuando se agrega el elemento 6 a copia_set , el conjunto original no se ve afectado.


Copia de un conjunto con elementos mutables

Ejemplo

    # Crear un conjunto con una lista como elemento (esto generará un error)
conjunto_con_lista = {1, [2, 3], 4}

# Intentar copiar el conjunto (esto
# Intentar copiar el conjunto (esto también generará un error)
copia_conjunto = conjunto_con_lista.copy()

# Esto generará un
# Esto generará un error porque las listas son elementos mutables
print(copia_conjunto)
  
Abrir en editor

En este caso, obtendrás un error porque los elementos dentro del conjunto ( [2, 3] ) son mutables (una lista). copy() solo crea una copia superficial, por lo que no puede copiar elementos mutables como listas o diccionarios.


Copia de un conjunto de conjuntos (nested sets)

Ejemplo

    conjunto = {"rojo", "verde", "azul"}
conjunto1 = {1, 2, 3}
conjunto2 = {3, 4, 5}

# Crear un conjunto de conjuntos
conjunto_de_conjuntos = {frozenset({1, 2}), frozenset({3, 4})}

# Copiar el conjunto de conjuntos
copia_conjunto_de_conjuntos # Copiar el conjunto de conjuntos
copia_conjunto_de_conjuntos = conjunto_de_conjuntos.copy()

# Agregar un nuevo conjunto a la copia
copia_conjunto_de_conjuntos.add(frozenset({5, 6}))

# Verificar que el conjunto original no se ve afectado
print("Conjunto de conjuntos original:", conjunto_de_conjuntos)
# Conjunto de conjuntos original: {frozenset({1, 2}), frozenset({3, 4})}
print("Copia del conjunto de conjuntos:", copia_conjunto_de_conjuntos)
# # Copia del conjunto de conjuntos: {frozenset({1, 2}), frozenset({3, 4}), frozenset({5, 6})}
  
Abrir en editor

En este ejemplo, estamos copiando un conjunto que contiene conjuntos inmutables ( frozenset ). La copia se realiza correctamente, y podemos agregar un nuevo conjunto a la copia sin afectar al conjunto original.

La función copy() es útil cuando deseas trabajar con una copia independiente de un conjunto sin modificar el original. Sin embargo, ten en cuenta que esta es una copia superficial, por lo que si el conjunto contiene elementos mutables, esos elementos aún serán los mismos en ambas copias. En ese caso, deberías considerar técnicas más avanzadas como la copia profunda (deep copy) si necesitas independencia completa entre los conjuntos.


Practica Método copy() de conjuntos en Python en el editor

Pon en práctica lo aprendido con nuestro editor Python interactivo. Cada ejercicio incluye el código de partida y un botón para abrirlo en una nueva pestaña, donde puedes modificarlo y ejecutarlo.

Ejercicio: Verificar que el conjunto original no se ve afectado

La función copy() en Python se utiliza para crear una copia superficial (shallow copy) de un conjunto (set). Esto significa que se.

Ejemplo

    copia_set.add(6)
# V
# Verificar que el conjunto original no se ve afectado
print("Conjunto original:", original_set)  # Conjunto original: {1, 2, 3, 4, 5}
print("Copia del conjunto:", copia_set)      # Copia del conjunto: {1, 2, 3, 4, 5, 6}
  
Abrir en editor

Ejercicio: En este ejemplo,

En este ejemplo, copia_set es una copia del conjunto original_set . Cuando se agrega el elemento 6 a copia.

Ejemplo

    # Crear un conjunto con una lista como elemento (esto generará un error)
conjunto_con_lista = {1, [2, 3], 4}

# Intentar copiar el conjunto (esto
# Intentar copiar el conjunto (esto también generará un error)
copia_conjunto = conjunto_con_lista.copy()

# Esto generará un
# Esto generará un error porque las listas son elementos mutables
print(copia_conjunto)
  
Abrir en editor

Ejercicio: Crear un conjunto de conjuntos

En este caso, obtendrás un error porque los elementos dentro del conjunto ( [2, 3] ) son mutables (una lista). copy() solo crea una copia su.

Ejemplo

    conjunto = {"rojo", "verde", "azul"}
conjunto1 = {1, 2, 3}
conjunto2 = {3, 4, 5}

# Crear un conjunto de conjuntos
conjunto_de_conjuntos = {frozenset({1, 2}), frozenset({3, 4})}

# Copiar el conjunto de conjuntos
copia_conjunto_de_conjuntos # Copiar el conjunto de conjuntos
copia_conjunto_de_conjuntos = conjunto_de_conjuntos.copy()

# Agregar un nuevo conjunto a la copia
copia_conjunto_de_conjuntos.add(frozenset({5, 6}))

# Verificar que el conjunto original no se ve afectado
print("Conjunto de conjuntos original:", conjunto_de_conjuntos)
# Conjunto de conjuntos original: {frozenset({1, 2}), frozenset({3, 4})}
print("Copia del conjunto de conjuntos:", copia_conjunto_de_conjuntos)
# # Copia del conjunto de conjuntos: {frozenset({1, 2}), frozenset({3, 4}), frozenset({5, 6})}
  
Abrir en editor

Cómo practicar

1. Pulsa Ejecutar en el bloque de código.
2. Modifica un valor o argumento.
3. Vuelve a ejecutar y observa la consola.