Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:变量的值会意外更改_Python - Fatal编程技术网

Python:变量的值会意外更改

Python:变量的值会意外更改,python,Python,我正在做一个小项目,涉及坐标的使用和转换,我的代码以一种我无法解释的方式运行。 示例代码: koord = [[60,10],[70,18],[61,21],[69,11]] min_X = [255,255] for i in range(len(koord)): if koord[i][0]<min_X[0]: min_X=koord[i] print(min_X) for i in range(len(koord)): for j in range

我正在做一个小项目,涉及坐标的使用和转换,我的代码以一种我无法解释的方式运行。 示例代码:

koord = [[60,10],[70,18],[61,21],[69,11]]
min_X = [255,255]

for i in range(len(koord)):
    if koord[i][0]<min_X[0]:
        min_X=koord[i]
print(min_X)

for i in range(len(koord)):
    for j in range(2):
        koord[i][j]=koord[i][j] - min_X[j]
    print(min_X)
为什么
min_X
值会改变?重做第一个for循环很困难,但为什么?
有人能解释一下为什么会发生这种情况,以及我如何解决它吗?

第一个for循环指定minux指向第一个坐标对列表,所以现在minux===koord[0]。然后第二个for循环更新koord[0],因此min_X会看到相同的更新,因为它是相同的(列表)对象

下面是一个更具包容性的示例:

a=[10]
b=a
a[0]=b[0]
印刷品(b)
#这将返回[0]

因为min_X是对列表元素的引用,它会发生变化。Ok。但是有没有办法让它不把它们“链接”在一起,而是把它们作为单独的变量保存?你可以复制一份列表,例如,
newList=list(oldList)
。请参见:。
[60, 10]
[0, 0]
[0, 0]
[0, 0]
[0, 0]