En primer lugar, la asignación
alist = [ "a", "b", "c", [5,6], 10]
aa = alist
alist.append ( "yu")
aa.append ( "IOP")
alist [3] .Append (99 )
alist [3] .Append ( "test")
de impresión (alist)
de impresión (aa)
resultados de la ejecución son las siguientes:
[ 'a', 'b', 'c', [5, 6, 99, 'test'], 10, 'yu', 'PIO']
[ 'a', 'b', 'c', [5 , 6, 99, 'test'], 10, 'yu', 'PIO']
instrucciones de asignación se pasan los datos entre dos variables mutuamente, modificar el valor de cualquier variable, otras variables tendrán un impacto en el valor de
En segundo lugar, la copia superficial, Copiar ()
copia de importación
# Copia superficial, no hay copias de los elementos internos del elemento, tiene elementos internos afectarán a la otra para cambiar el
blist = [ "a", "b", "c", [5,6], 10]
bb = copy.copy (blist)
blist.append ( "haha")
bb.append (89)
blist [3]. append ( "qe")
bb [3] .Append (99)
imprimir (blist)
de impresión (bb)
Los resultados:
[90, 'b', ' c', [5, 6, 'qe', 99], 10, 'haha'] # blist adicional 'haha', y no el valor bb, el número de elementos internos para blist [ 3] se añadió 'qe', se aplicará a la bb bb [3] los elementos internos
[ 'a', 'b' , 'c', [5, 6, 'qe', 99], 10, 89] #BB añaden 89, no el valor blist, el número de elementos internos BB [3] añadir 99, actuará para blist blist [3] el elemento interno
En tercer lugar, la copia profunda
copia de importación
# Copia profunda, la copia de cada elemento independientemente unos de otros cambios, incluyendo sub-elementos
CLIST = [ "A", "B", "C", [5,6], 10]
CC = copy.deepcopy (clist)
CLIST .Append (90)
cc.append (100)
clist [3] .Append (11)
cc [3] .Append (10)
imprimir (clist)
de impresión (cc)
Los resultados:
[ 'a', 'b', 'c', [5, 6, 11], 10, 90]
[ 'a', 'b', 'c', [5, 6, 10], 10, 100]
De hecho, la copia profunda, todo el elemento externo se copia, la copia profunda, cambie los valores de dos variables, no afectará a la otra