我想知道为什么如果我将多个字符的字符串拆分成一个列表,那么只有将列表保存到一个新对象中,del函数才能工作?示例:
x = 'Hello world'
del x.split()[0]
print(x)
out: Hello worldy = x.split()
del y[0]
print(y)
out: ['world']发布于 2021-05-20 19:53:22
首先,x.split()创建一个完全独立于x的列表(甚至忽略str值不可变的事实);修改该列表不会以任何方式影响x。
其次,您没有保存对x.split()返回的列表的引用,因此即使del x.split()[0]确实改变了该列表,一旦语句完成,整个列表也会受到垃圾收集的影响。
在第二个示例中,您确实有一个对x.split(0)的返回值的引用,因此您可以观察del的结果。
https://stackoverflow.com/questions/67627090
复制相似问题