x = "hello, world"
print(x.replace("h","j")
因此,从这段代码中,您可以将字母h更改为j,这意味着它是可变的
,这意味着它是可变的
不,Python字符串是不可变的。str.replace
(和任何其他字符串方法(返回一个新字符串。
如果字符串是可变的,那么下面的代码
x = "hello, world"
x.replace("h","j")
print(x)
将输出jello, world
(它没有(。
这并不意味着字符串是可变的,而是意味着我们正在replace
方法中创建一个新的字符串。
>>> a= "ababa"
>>> id(a)
48421600L
>>> id(a.replace('a','c'))
48419776L
>>>
从字符串的id可以看出,它们是两个不同的字符串。也可以使用is
运算符进行比较。
字符串在python中是不可变的。
>>> x = 'hello, world'
>>> x
[OUT]: 'hello, world'
>>> id(x)
[OUT]: 4400926320
>>> x = x.replace('h','j')
>>> x
[OUT]: 'jello, world'
>>> id(x)
[OUT]: 4402216304
当您试图修改字符串对象的值时,它会指向内存中具有不同位置的新字符串,因为字符串是不可变的。id(x(返回x的内存地址。