python中的字符串是可变的吗?

2024-06-09 23:25:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我将字符串“y”声明为hello,然后尝试使用python中的replace方法将字符“h”改为“m”,并检查了类型(y):它的显示字符串 但当我搜索时,它显示的字符串是不变的。。。请解释一下

>>> y="hello"

>>> y=y.replace("h","m")

>>> y


'mello'
>>> type(y)

<class 'str'>

Tags: 方法字符串声明类型hellotype字符replace
3条回答

Python中的字符串是不可变的(不能更改为允许对所有字符串使用一个字典进行优化)。你知道吗

例如:

>>> y="hello"

>>> y.replace("h","m")
'mello'

>>> y
'hello'

当我们想要改变一个字符串时,我们可以使用bytearray或者(通常更好)创建一个新的字符串。例如,考虑方法“replace”。它没有改变示例中的字符串-但是我们可以指定它的返回值。你知道吗

>>> y1 = y.replace("h","m")
>>> y1
'mello'

或者甚至使用相同的变量y,在这种情况下,它将创建一个新字符串并覆盖y的先前值

>>> y = y.replace('h','m')
>>> y
'mello'

就像把一个新的价值放在一起:

>>> y = 'a new value'
>>> y
a new value

您没有改变字符串,而是更改了字符串y指向的内容。你知道吗

y最初指向"hello",然后运行行y=y.replace("h","m"),使y指向字符串"mello"。原始字符串"hello"从未发生过突变,因为字符串确实是不可变的。你知道吗

是的,字符串是不可变的。当你排队的时候 y=y.替换(“h”,“m”) 您正在创建一个新字符串,而不是更改第一个字符串。第一个字符串实际上无法更改。你知道吗

相关问题 更多 >