his是两个list拼成的list,其中第二个list就是now,FS()是自定义函数,FS(now[2],gl)的值正是[5,3]
但是
a=[1]
b=[]
print(b)
b+=[a]
b=b+[a]
print(b)
a=[2]
print(b)
就没有这个问题

为什么这两个print输出的不一样?(语言-python)
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 於黾 2022-06-13 07:57关注
因为list是个可变值类型
你的his既然是包含了now的
那么你修改了now,his也就跟着变了
而你上面的那个代码
后面a=[2]把a指向了一个新的地址,就跟add进b里的a不是同一个对象了
换句话说,a=[2]和a.clear();a.append(2)是不等价的本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用