Форум сайта python.su
0
Не получается скопировать данные из одного массива в другой без привязки. В чём заключается проблема?
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))
Отредактировано Demexis (Ноя. 30, 2019 23:33:55)
Прикреплённый файлы:
ice_screenshot_20191130-185545.png (7,0 KБ)
Офлайн
253
Все правильно работает. В питоне практически все данные ссылочные. см метод deepcopy
Офлайн
857
Если уровень вложенности один, можно и через включение скопировать
>>> 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]] >>>
Офлайн