你如何在python中更改特定数量的字符

时间:2013-12-08 18:24:53

标签: python string replace numbers

我希望能够替换字符串的一部分,但我不需要它作为要替换的特定字符,而是我想替换字符串的最后一部分。像s [-1]。那我该怎么做?

5 个答案:

答案 0 :(得分:1)

字符串是不可变的,因此您无法就地“替换”字符。您将需要创建一个新字符串(通过切换旧字符串并与任何内容连接),然后将其分配给某些内容,可能是您的旧引用。

foo = 'foo'

foo[:-1] + 'x'
Out[31]: 'fox'

foo
Out[32]: 'foo'

foo = foo[:-1] + 'x'

foo
Out[34]: 'fox'

答案 1 :(得分:0)

我认为最简单的解决方案是使用Explain Python's slice notation并将字符串切割到您想要的位置。然后,您可以添加新的结尾。

参见下面的演示:

>>> mystr = "abcde"
>>> mystr[:-1]+"x"
'abcdx'
>>>

答案 2 :(得分:0)

好吧,如果它只是最后一部分,可以使用类似的东西:

new_string = old[:x] + "new bit"

将返回第一部分的副本,并将其与新部分连接。但是,如果新位与要替换的部分长度相同,则可以避免复制。

答案 3 :(得分:0)

这是一种方法:

>>> a = "my damn strin"
>>> b = a[:-1]
>>> b = b + 'k'
>>> b
'my damn strik'
>>> 

答案 4 :(得分:0)

进行字符串切片和连接可能是最好的方法,但是这是另一种方法,如果您关心它,可能会更快。它使用unsigned char数组,它本质上是一个可变字符串。

#!/usr/local/cpython-3.3/bin/python

import array as array_mod

string = b'sequence of characterx'

array = array_mod.array('B', string)

print(array)

array[-1] = ord(b's')

print(array)

HTH