python已知x=[1,2,3],那么执行语句y=x之后,对y所做的任何操作都会同样作用到x上

已知x=[1,2,3],那么执行语句y=x之后,对y所做的任何操作都会同样作用到x上。

这题为什么是对的呀?

因为python的列表、字典等,如果你使用 list_2=list_1 这样的语句,实际上不是传值,而是传引用。

如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的原始值——相当于通过“传引用”来传递对象。如果函数收到的是一个不可变对象(比如数字、字符或者元组)的引用,就不能直接修改原始对象——相当于通过“传值'来传递对象。

当复制列表或字典时,就复制了对象列表的引用,如果改变引用的值,则修改了原始的参数。

参考:关于Python中的引用 - 东去春来 - 博客园 (cnblogs.com)