** * Cet article provient d'Udemy "[Introduction à Python3 enseignée par des ingénieurs actifs de la Silicon Valley + application + style de code de style américain de la Silicon Valley](https://www.udemy.com/course/python-beginner/" Introduction à Python3 enseignée par des ingénieurs actifs de la Silicon Valley + application + Style de code de style de la Silicon Valley américaine ")" C'est une note de classe pour moi après avoir suivi le cours. Il est ouvert au public avec la permission de l'instructeur Jun Sakai. ** **
list_copy
x = [1, 2, 3, 4, 5]
y = x
y[0] = 100
print('x = ', x)
print('y = ', y)
result
x = [100, 2, 3, 4, 5]
y = [100, 2, 3, 4, 5]
Même si je viens de jouer avec «x», le changement s'étend à «y».
list_copy
x = [1, 2, 3, 4, 5]
y = x.copy()
y[0] = 100
print('x = ', x)
print('y = ', y)
result
x = [1, 2, 3, 4, 5]
y = [100, 2, 3, 4, 5]
En utilisant x.copy ()
au lieu de x
,
Vous pouvez remplacer "une copie de x
" par "y" au lieu de "" x "lui-même".
id_different
X = 20
Y = X
Y = 5
print('X = ', X)
print('Y = ', Y)
print('id of X =', id(X))
print('id of Y =', id(Y))
result
X = 20
Y = 5
id of X = 4364961520
id of Y = 4364961040
Si vous essayez de faire de même avec des valeurs numériques au lieu de listes, la réécriture de «Y» n'affectera pas «X».
Si vous regardez les identifiants de X
et Y
en utilisant ʻid ()`, vous pouvez voir que ce sont des identifiants différents.
id_same
X = ['a', 'b']
Y = X
Y[0] = 'p'
print('X = ', X)
print('Y = ', Y)
print('id of X =', id(X))
print('id of Y =', id(Y))
result
X = ['p', 'b']
Y = ['p', 'b']
id of X = 4450177504
id of Y = 4450177504
Dans la liste, la réécriture de «Y» affecte également «X». Dans ce cas, si vous regardez l'id, vous pouvez voir que les deux «X» et «Y» pointent vers le même id.
id_same
X = ['a', 'b']
Y = X.copy()
Y[0] = 'p'
print('X = ', X)
print('Y = ', Y)
print('id of X =', id(X))
print('id of Y =', id(Y))
result
X = ['a', 'b']
Y = ['p', 'b']
id of X = 4359291360
id of Y = 4359293920
Si évité par .copy ()
Vous pouvez voir que les identifiants de «X» et «Y» sont différents.