Метод
.copy()
создаёт новый список, в котором хранятся в точности те же ссылки.
Это означает, что если в списке будет лежать другой список, то копия будет на него ссылаться:
a = [[1, 2], [3, 4]] b = a.copy() b[0][0] = 'ha' b[0][1] = 'hi' b[1] = 'ho' print(b) # -> [['ha', 'hi'], 'ho'] print(a) # -> [['ha', 'hi'], [3, 4]]
Для того, чтобы создать «полноценную» копию, можно использовать функцию deepcopy
из модуля copy
:
from copy import deepcopy a = [[1, 2], [3, 4]] b = deepcopy(a) b[0][0] = 'ha' b[0][1] = 'hi' b[1] = 'ho' print(b) # -> [['ha', 'hi'], 'ho'] print(a) # -> [[1, 2], [3, 4]]
Последнее изменение: Суббота, 15 Август 2020, 02:35