Python 替换函数
我想用替换功能,但我只想替换一个字符,而不是所有出现的那个字符。
比如说:
>>> 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'