python - del语句的功能

标签 python string split 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] 保存了改变该列表,一旦语句完成,整个列表将被垃圾收集。

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

关于python - del语句的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67627090/

相关文章:

c# - String.Split() 删除前导零

python - 由可选尖括号包围的模式的正则表达式

java - 字符串行数限制?

c# - 如何获取可变字符串列表?

java - Excel 或文本文件,该使用哪一个?

python - 将列表拆分为均匀大小的重叠 block n-max

javascript - 在javascript中按原始顺序拆分整数并将其存储在数组中

python - tkinter 中字符和事件处理的 % 运算符

python - 文档脚本(Matlab 在 python 中的发布功能)

python - 计算列表内的差异