Найти - Пользователи
Полная версия: Проблема с копированием массивов.
Начало » Python для новичков » Проблема с копированием массивов.
1
Demexis
Не получается скопировать данные из одного массива в другой без привязки. В чём заключается проблема?

 old_list = [[1, 2, 3], [1,3,1], [1,2,7]]
new_list = list(old_list)
print(old_list is new_list)
old_list[1][2] = 98
new_list[2][1] = 75
print("\nOld list: " + str(old_list))
print("New list: " + str(new_list))


print(old_list is new_list) — выдаёт False

Присваивания, выполняемые для каждого отдельного списка — выполняются и в другом.
doza_and
Все правильно работает. В питоне практически все данные ссылочные. см метод deepcopy
py.user.next
Если уровень вложенности один, можно и через включение скопировать
  
>>> lst1 = [[1, 2, 3], [4, 5, 6]]
>>> 
>>> lst2 = [i[:] for i in lst1]
>>> 
>>> lst2[0][0] = 0
>>> lst1
[[1, 2, 3], [4, 5, 6]]
>>> lst2
[[0, 2, 3], [4, 5, 6]]
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB