

相比于第一次测试,第二次测试没有在def下面一行加上global list3,可是输出结果一致。困惑我的是如果不在def里加上global list3,那么接下来的print(转换后list1,list3 )中list3的值不应该是主函数中原来的值吗?为什么会自动转变为修改后的结果?
list是可变值类型,对应java和c里面的引用类型
list3对象本身不能被重新赋值,赋值了就变成局部变量了,不赋值就是全局变量
但只要它本身不被重新赋值,它的元素都是指向全局变量list3的地址,修改了它就等于修改list3