Python 替换函数

2 投票
5 回答
20277 浏览
提问于 2025-04-17 12:33

我想用替换功能,但我只想替换一个字符,而不是所有出现的那个字符。

比如说:

>>> test = "10010"
>>> test = test.replace(test[2],"1")
>>> print test
>>> '11111' #The desired output is '10110'

有没有办法可以做到这一点呢?

5 个回答

1

字符串是不可变的,也就是说你无法直接替换字符串中的某一个字符。如果你想替换某个特定的位置的字符,应该使用数组。

在字符串中进行替换是这样的:

mystr = "mystr"
mystr.replace('t','i',1)
'mysir'

print mystr
mystr

这可能是你需要的,也可能不是。

4

这里没有现成的解决办法。不过,这里有一个简单的函数可以做到这一点:

>>> def replace_one_char(s, i, c):
...     return s[:i] + c + s[i + 1:]
... 
>>> replace_one_char('foo', 1, 'a')
'fao'

另外,可以看看Ignacio的字节数组解决方案

4

不行。str.replace() 会替换掉所有出现的那个字符。你可以使用 bytearray 来代替。

>>> test = bytearray('10010')
>>> test[2] = '1'
>>> str(test)
'10110'

撰写回答