[英]how do you change a specific number of a character in python
我希望能夠替換字符串的一部分,但我不需要將其替換為特定字符,而是希望替換字符串的最后一部分。 像s [-1]。 那我該怎么做呢?
字符串是不可變的,因此您不能就地“替換”字符。 您將需要創建一個新字符串(通過將舊字符串切成薄片並與任何內容串聯在一起),然后將其分配給某些內容,可能是在您的舊引用上。
foo = 'foo'
foo[:-1] + 'x'
Out[31]: 'fox'
foo
Out[32]: 'foo'
foo = foo[:-1] + 'x'
foo
Out[34]: 'fox'
我認為最簡單的解決方案是使用Explain Python的slice表示法並將字符串切成所需的位置。 然后,您可以添加一個新的結尾。
請參見下面的演示:
>>> mystr = "abcde"
>>> mystr[:-1]+"x"
'abcdx'
>>>
好吧,如果只是最后一部分,則可以使用類似以下內容的方法:
new_string = old[:x] + "new bit"
這將返回第一部分的副本,然后將其與新部分連接起來。 但是,如果新位的長度與您要更換的零件的長度相同,則可以避免復制。
這是一種方法:
>>> a = "my damn strin"
>>> b = a[:-1]
>>> b = b + 'k'
>>> b
'my damn strik'
>>>
進行字符串切片和連接可能是最好的方法,但是如果您擔心這種情況,這是另一種可能更快的方法。 它使用無符號字符數組,該數組本質上是可變字符串。
#!/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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.