Método copy() de diccionario Python3
Descripción
La función copy() del diccionario 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/python3
dict1 = {'Name': 'Ejemplo', 'Age': 7, 'Class': 'First'}
dict2 = dict1.copy()
print ("El diccionario recién copiado es:",dict2)
El resultado de salida del ejemplo anterior es:
新复制的字典为 : {'Age': 7, 'Name': 'Ejemplo', 'Class': 'First'}
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 (primer nivel), el objeto hijo (segundo nivel) no se copia, el objeto hijo es una referencia
# Modificar los datos 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 iguales; el objeto padre de dict3 se copió en profundidad, por lo que no se modifica cuando dict1 se modifica; el objeto hijo es una copia superficial, por lo que se modifica cuando dict1 se modifica.
{'user': 'root', 'num': [2, 3]}
{'user': 'root', 'num': [2, 3]}
{'user': 'ejemplo', 'num': [2, 3]}
Ampliación de conocimientos
Análisis de asignación directa, copia superficial y copia profunda en Python
Otras extensiones
Diccionario Python3