Как сделать копию 2D-массива в Python? [дубликат]

В этом вопросе уже есть ответ здесь:

X - это 2D-массив. Я хочу иметь новую переменную Y , которая имеет то же значение, что и массив X . Более того, любые дальнейшие манипуляции с Y не должны влиять на значение X.

Мне кажется настолько естественным использовать y = x . Но с массивами это не работает. Если я сделаю это так, а затем изменю y, x тоже изменится. Я выяснил, что проблему можно решить так: y = x [:]

Но это не работает с 2D массивом. Например:

x = [[1,2],[3,4]]
y = x[:]
y[0][0]= 1000
print x

возвращает [[1000, 2], [3, 4]] . Также не поможет, если я заменю y = x [:] на y = x [:] [:] .

Кто-нибудь знает, какой правильный и простой способ чтобы сделать это?

49
задан Roman 29 June 2011 в 22:43
поделиться