4 python string replace immutability mutability
我只是在python中经历可变和不可变的结构.在Python中写道"字符串是不可变的",即我们无法改变它们考虑代码:
str1='Rohit'
str1.replace('R','M')
Run Code Online (Sandbox Code Playgroud)
这给出了输出:
'Mohit'
Run Code Online (Sandbox Code Playgroud)
现在,有人说是变量str1指向字符串'Rohit',在str1.replace()之后它指向'Mohit'考虑以下代码:
'Rohit'.replace('R','M')
Run Code Online (Sandbox Code Playgroud)
这也给了我输出:
'Mohit'
Run Code Online (Sandbox Code Playgroud)
那么'字符串是不可变的'是什么意思?
tim*_*geb 10
字符串上没有任何允许更改字符串值的方法.换句话说:字符串是不可变的.
当你调用str.replace一个新的字符串时,构建并返回.
>>> s1 = 'Rohit'
>>> s2 = s1.replace('R', 'M')
>>>
>>> s1
'Rohit'
>>> s2
'Mohit'
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,s1仍然有其原始价值.
小智 7
字符串在 Python(和其他语言)中被称为不可变,因为一旦创建了初始字符串,作用于它的函数/方法都不会直接更改它,它们只是返回新字符串。
所以,在你的例子中
str1='Rohit'
str1.replace('R','M')
Run Code Online (Sandbox Code Playgroud)
通话结束后.replace,您应该尝试str1在 REPL 中进行评估。您可能会惊讶地发现str1仍然保留值“Rohit”。返回.replace一个新字符串,其中给定字符的所有实例都替换为指定字符。你的 REPL 将打印返回的字符串,但之后它会丢失,因为你没有将它分配给任何东西。
您的第二个示例大致相同,但使用字符串常量而不是像 之类的变量str1。
| 归档时间: |
|
| 查看次数: |
3464 次 |
| 最近记录: |