Python是不可变的字符串

如果python字符串是不可变的,如何如下更改:


  a = "abc"

  print a

  a = "cde"

  print a

输出:


abc

cde

这实际上是在创建一个新变量并更改为指向该变量吗?


RISEBY
浏览 274回答 3
3回答

杨魅力

Python字符串是不可变的。您正在做的只是a使用两个不同的字符串重新分配变量,这与不变性无关。在显示的代码中,没有创建新变量,只有a。并且在分配中,a每次都指向一个不同的字符串。要查看字符串是不可变的,请看以下示例:a = 'abxde'b = a.replace('x', 'c')a=> 'abxde'b=> 'abcde'如您所见,a该replace()方法没有被方法修改,而是由该方法创建了一个新字符串,我们将其分配给b,这就是替换字符串的结尾。所有执行更改的字符串方法都是这样:它们不会就地修改原始字符串,它们会创建并返回一个新的字符串。

动漫人物

是的,在Python中,字符串是不可变的您的代码未创建新变量您的代码为变量分配了a对另一个字符串的引用

波斯汪

它正在创建一个新对象并更改a为指向该新对象。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python