波大大12138 发表于 2021-6-30 10:18:47

矩阵的copy赋值

本帖最后由 波大大12138 于 2021-6-30 10:25 编辑

copy赋值,不是只赋值数据值,赋值完之后,两个变量完全互不影响的吗?也就是说修改b 不会影响a,这里运行结果a,b都改变了?,等号赋值才是这样的啊

a=[,]
b=a.copy()
print(a is b)
print(a,'\n')
print(b,'\n')
b=999
print(b)
print(a)

逃兵 发表于 2021-6-30 10:22:30

列表嵌套的话,虽然最外层列表不一样,但是列表内元素指向的是同一id

a=[,]
b=a.copy()
print(a is b)
print(a is b)
print(a is b)




你可以这样赋值

a=[,]
b=eval(str(a))
print(a is b)
print(a,'\n')
print(b,'\n')
b=999
print(b)
print(a)

波大大12138 发表于 2021-6-30 10:29:43

逃兵 发表于 2021-6-30 10:22
列表嵌套的话,虽然最外层列表不一样,但是列表内元素指向的是同一id




我是看了教学视频,我复现的,他确实不改变,他是b=999,这条代码我运行报错,我改为b=999应该不影响吧

逃兵 发表于 2021-6-30 11:13:10

波大大12138 发表于 2021-6-30 10:29
我是看了教学视频,我复现的,他确实不改变,他是b=999,这条代码我运行报错,我改为b=999应该 ...

数据结构不一样,他是数组,你这个是列表,所以会报错

import numpy as np
a=np.array([,])

b = a.copy()

b = 999

print(a)

print(b)
页: [1]
查看完整版本: 矩阵的copy赋值