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
Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐