2013-12-08 72 views

回答

0

我認爲最簡單的解決方案是使用Explain Python's slice notation並將字符串切分到您想要的位置。然後,你可以添加一個新的結局。

請參見下面的演示:

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

字符串是不可改變的,所以你不能「代替」就地字符。你將需要創建一個新的字符串(通過切片你的舊字符串,並與任何連接),然後將其分配給某些東西,也許在你的舊引用。

foo = 'foo' 

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

foo 
Out[32]: 'foo' 

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

foo 
Out[34]: 'fox' 
0

好吧,如果這是剛剛過去的第一部分可以使用類似:

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

這將返回第一部分的副本,並與當時的新的部分拼接它。但是,如果新位的長度與要替換的部分長度相同,則可以避免複製。

0

這是一個辦法做到這一點:

>>> a = "my damn strin" 
>>> b = a[:-1] 
>>> b = b + 'k' 
>>> b 
'my damn strik' 
>>> 
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

相關問題