字符串:已分配,未突变
问题源于尝试将字符从一个字符串 s1 复制到另一个字符串 s2。由于 Python 中字符串的固有属性,对 s2[j] 的赋值失败:它们无法直接修改。
与 C 或其他语言中字符串是可变的不同,Python 中的字符串是不可变的。这意味着字符串一旦创建,就无法就地更改或修改。尝试为字符串中的特定字符赋值将导致“str”对象不支持项目分配”错误。
Python 的解决方案:字符串作为字符列表
Python 提供了另一种修改字符串的方法:将它们视为字符列表。可以使用 list() 函数将字符串转换为列表,从而允许单独访问和修改每个字符。
<code class="python">str1 = "Hello World" list1 = list(str1) list1[5] = 'u' str1 = ''.join(list1) print(str1) # Outputs "mystrung"</code>
在此示例中,原始字符串 str1 转换为列表 list1,然后使用项目分配修改索引 5 处的字符,最后使用 '' 将修改后的列表 list1 转换回字符串。 .join() 函数,保留对各个字符所做的更改。
以上是为什么Python中的字符串不能直接修改?的详细内容。更多信息请关注PHP中文网其他相关文章!