Python是不可变的字符串

时间:2013-06-23 21:47:13

标签: python

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

  a = "abc"
  print a
  a = "cde"
  print a

输出:

abc
cde

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

3 个答案:

答案 0 :(得分:5)

Python字符串不可变的。你正在做的只是将a变量重新分配给两个不同的字符串,这与不变性无关。

在显示的代码中没有创建新变量,只有a。在分配中,a每次都指向不同的字符串。要查看字符串是不可变的,请看一下这个例子:

a = 'abxde'
b = a.replace('x', 'c')

a
=> 'abxde'

b
=> 'abcde'

正如您所看到的,a方法未修改replace(),而是该方法创建了一个新字符串,我们将其分配给b,这就是替换字符串结束的位置。执行更改的所有字符串方法都是这样的:它们不会就地修改原始字符串,它们会创建并返回一个新字符串。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

创建新对象并将a更改为指向新对象。