Python 中的字符串不能被修改 (immutable),因此,指向字符串的某个索引位置赋值会产生一个错误;如果需要一个不同的字符串,应当新建一个;内建函数 len() 返回一个字符串的长度。
>>> # 字符串不能被修改
>>>> word = 'Python'
>>> word[0] = 'J'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
>>> word[2:] = 'py'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
但是我们时常会进行以下的操作。
>>> word = 'Python'
>>> word = 'J' + word[1:]
'Jython'
字符串 word 似乎已经被修改了为 ‘Jython’,但事实是前後兩個 word 占用的是不同的内存指针,可以用 id() 这个方法来观察实际的内存指针。这说明 word并没有被修改,而是被配置到新的内存。
>>> word = 'Python'
>>> id(word)
4490040048
>>> word = 'J' + word[1:]
>>> id(word)
4491114608