del语句的功能

我想知道为什么如果我将一个包含多个字符的字符串拆分为一个列表,那么del只有将列表保存到一个新对象中时,函数才起作用?例子:

x = 'Hello world'
del x.split()[0]
print(x)
out: Hello world
y = x.split()
del y[0]
print(y)
out: ['world']

回答

首先,x.split()创建一个完全独立的列表x(甚至忽略str值不可变的事实);修改该列表不会x以任何方式产生影响。

其次,您没有保存对由 返回的列表的引用x.split(),因此即使del x.split()[0]确实改变了该列表,一旦语句完成,整个列表也会受到垃圾回收的影响。

在您的第二个示例中,您确实 有一个引用 t 的返回值x.split(0),因此您可以观察 的结果del


以上是del语句的功能的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>