Python中的replace()方法有什么特别之处?

时间:2016-02-06 23:00:18

标签: python string python-3.x

首先,我是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'

为什么会这样?

2 个答案:

答案 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]