簡體   English   中英

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

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM