我想更改特定字符串索引的值,但不幸的是
string[4] = "a"
引发TypeError
,因为字符串是不可变的(“不支持项目分配”)。
所以我使用相当笨拙的
string = string[:4] + "a" + string[4:]
有更好的方法吗?
答案 0 :(得分:8)
Python中的字符串是不可变的,就像数字和元组一样。这意味着您可以创建它们,移动它们,但不能更改它们。为什么会这样?有几个原因(你可以在网上找到更好的讨论):
如果你仔细观察Python网页,你会发现“如何改变我的字符串”最常见的建议是“设计你的代码,这样你就不必改变它”。很公平,但还有其他选择吗?以下是一些:
从my own page抄袭Python见解: - )
答案 1 :(得分:3)
mystring=list("abcdef")
mystring[4]="Z"
print ''.join(mystring)
答案 2 :(得分:0)
>>> from UserString import MutableString
>>> s = MutableString('abcd')
>>> s[2] = 'e'
>>> print s
abed