Método copy() del diccionario (Dictionary) de Python
Descripción
La función copy() del diccionario (Dictionary) de Python devuelve una copia superficial de un diccionario.
Sintaxis
Sintaxis del método copy():
dict.copy()
Parámetros
- NA.
Valor de retorno
Devuelve una copia superficial de un diccionario.
Ejemplo
El siguiente ejemplo muestra el uso de la función copy():
Ejemplo
#!/usr/bin/python
dict1 = {'Name': 'Zara', 'Age': 7};
dict2 = dict1.copy()
print "New Dictinary : %s" % str(dict2)
El resultado del ejemplo anterior es:
New Dictinary : {'Age': 7, 'Name': 'Zara'}
Diferencia entre asignación directa y copy
Se puede explicar con el siguiente ejemplo:
Ejemplo
#!/usr/bin/python
# -*- coding: UTF-8 -*-
dict1 = {'user':'ejemplo','num':[1,2,3]}
dict2 = dict1 # Copia superficial: objeto de referencia
dict3 = dict1.copy() # Copia superficial: copia profunda del objeto padre (directorio de primer nivel), el objeto hijo (directorio de segundo nivel) no se copia, sigue siendo una referencia
# Modificar los datos de data
dict1['user']='root'
dict1['num'].remove(1)
# Resultado de salida
print(dict1)
print(dict2)
print(dict3)
En el ejemplo, dict2 es en realidad una referencia (alias) de dict1, por lo que los resultados de salida son todos iguales. dict3 realizó una copia profunda del objeto padre, no se modificará con los cambios de dict1; el objeto hijo es una copia superficial, por lo que se modifica con los cambios de dict1.
{'num': [2, 3], 'user': 'root'}
{'num': [2, 3], 'user': 'root'}
{'num': [2, 3], 'user': 'ejemplo'}
Ampliación de conocimientos
Explicación de la asignación directa, copia superficial y copia profunda en Python
Otras ampliaciones
Diccionario Python