不知道这样错在哪里了
Topic source看廖大的测试代码! 出现这个现象的表象原因是判断的时候正确与否的条件是: result = 结果 和t没有关系,但是你打印的是t,你欺骗了自己的眼睛。 根本原因是传址的问题,举例说明:
res = []
a = [1]
b = a #--->此时,a和b实际指向同一个地址
res.append(b)
print(res) #--->[[1]]
a.append(0)
print(res) #--->[[1, 0]] 改变了a,res也跟着变了
#我们再看一下b
print(b) #--->[1, 0]
#这种现象就叫做传址,指向的是同一个地址,改变地址中的数据,所有指向它的变量随之改变
#再来
a = [1,1]
print(b) # --> [1, 0] 我改变了a 为什么b没变,是因为对变量本身赋值会改变数据指向,新数据会重新创建地址,这时候再 a.append() 操作就不会改变b的值
所以根本原因实际是传址造成的。
- 1
手机用户2435583065