Форум сайта python.su
Есть глобальный массив (список) списков из чисел, надо создать копию этого массива в качестве локальной переменной какой-то функции, изменить и возвратить эту копию (не затронув значения глобального массива).
С одномерными массивами все получается, но вот с двумерным:
a = [[1, 2, 3], [4, 5, 6]]
def x(a):
aa = list(a)
aa[0][0] = 123
return aa
print x(a)
print a
[[123, 2, 3], [4, 5, 6]]
[[123, 2, 3], [4, 5, 6]]
[[123, 2, 3], [4, 5, 6]]
[[1, 2, 3], [4, 5, 6]]
Офлайн
Питон в большинстве случаев старается делать ссылки вместо копирования. Посмотри модуль copy, а если конкретнее, то глубокое копирование можно сделать функцией copy.deepcopy()
Офлайн
Спасибо, то что надо :)
Офлайн