Tout d'abord, l'affectation
alist = [ "a", "b", "c", [5,6], 10]
aa = alist
alist.append ( "yu")
aa.append ( "iop")
alist [3] .append (99 )
alist [3] .append ( "test")
impression (alist)
impression (aa)
les résultats d'exécution sont les suivants:
[ 'a', 'b', 'c', [5, 6, 99, 'test'], 10 'yu', 'iop']
[ 'a', 'b', 'c', [5 , 6, 99, 'test'], 10 'yu', 'iop']
Les instructions d'affectation sont transmises entre deux données mutuellement variables, modifier la valeur d'une variable, d'autres variables auront une incidence sur la valeur de
En second lieu, la copie peu profonde, copie ()
copie d'importation
# Copie superficielle, aucune copie des éléments internes de l'élément, comporte des éléments internes auront une incidence sur l'autre pour changer la
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)
imprimer (blist)
impression (bb)
Les résultats:
[90, 'b', ' c', [5, 6, 'qe', 99], 10 'haha'] # blist supplémentaire 'haha', et non pas le bb de valeur, le nombre d'éléments internes pour blist [ 3] , on a ajouté 'qe', sera appliquée à la bb bb [3] les éléments internes
[ 'a', 'B' , 'C', [5, 6, 'qe', 99], 10, 89] #BB 89 ajoutés, pas de valeur blist, le nombre d'éléments internes BB [3] 99 ajouter, agira à blist blist [3] , l'élément interne
En troisième lieu, la copie profonde
copie d'importation
# Profond copie, la copie de chacun des éléments indépendamment les uns des autres modifications, y compris les sous-éléments
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)
imprimer (clist)
impression (cc)
Les résultats:
[ 'a', 'b', 'c', [5, 6, 11], 10, 90]
[ 'a', 'b', 'c', [5, 6, 10], 10, 100]
En fait, la copie profonde, tout de l'élément extérieur est copié, la copie en profondeur, changer les valeurs de deux variables, n'affectera pas les uns des autres