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)
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})}
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.
- Tutorial de conjuntos en Python
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}
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)
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})}
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.