G-Bule 发表于 2022-10-17 15:23:17

大佬求解释


>>> x =
>>> def invert(x):
...   x = x[::-1]
...
>>> invert(x)
>>> print(x)
>>> # 请问这里会打印什么内容?
答:

>>> x =
>>> def invert(x):
...   x[:] = x[::-1]
...
>>> invert(x)
>>> print(x)
>>> # 请问这里会打印什么内容?
答:

为什么上一题在函数内部执行 x = x[::-1] 语句,出了函数就还原;而这一题在函数内部执行 x[:] = x[::-1] 语句,则能够从根本上修改列表呢?
小甲鱼的图看不懂,我还是喜欢听正式的解释。

jackz007 发表于 2022-10-17 16:04:38

         x = x[:: -1]是浅拷贝,不会创建新对象,而 x[:] = x[::-1] 是深拷贝,会新创建对象
页: [1]
查看完整版本: 大佬求解释