Answer a question

X is a 2D array. I want to have a new variable Y that which has the same value as the array X. Moreover, any further manipulations with Y should not influence the value of the X.

It seems to me so natural to use y = x. But it does not work with arrays. If I do it this way and then changes y, the x will be changed too. I found out that the problem can be solved like that: y = x[:]

But it does not work with 2D array. For example:

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

returns [ [1000, 2], [3, 4] ]. It also does not help if I replace y=x[:] by y = x[:][:].

Does anybody know what is a proper and simple way to do it?

Answers

Try this:

from copy import copy, deepcopy
y = deepcopy(x)

I'm not sure, maybe copy() is sufficient.

Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐