首先,我是Python的初学者。因此,如果我的问题对你来说很荒谬,我很抱歉。如果您有字符串值,例如:
a = 'Hello 11'
如果您输入:
a[-1] = str(int(a[-1]) + 1)
结果将是:'2'
但如果您输入:
a.replace(a[-1], str(int(a[-1]) + 1))
结果将是:
' Hello 22'
代替'Hello 12'
为什么会这样?
答案 0 :(得分:8)
看看这些部分:
>>> a[-1]
'1'
>>> str(int(a[-1]) + 1)
'2'
这意味着:
>>> a.replace(a[-1], str(int(a[-1]) + 1))
这样做:
>>> a.replace('1', '2')
'Hello 22'
它用字符串1
替换字符串2
。
在Python中,字符串是不可变的。因此,这个:
>>> a[-1] = str(int(a[-1]) + 1)
不起作用:
TypeError: 'str' object does not support item assignment
答案 1 :(得分:1)
replace执行匹配操作,create
的值,即1,在字符串中匹配2次
如果您只想替换最后一个字符:
a[-1]