python string replace inplace python3



字符串替換似乎沒有工作 (2)

Python中的字符串是不可變的。 這意味著給定的字符串對像在創建後永遠不會改變其值。 這就是為什麼像some_str[4] = "x"這樣的元素賦值會引發異常。

出於類似的原因, str類所提供的方法都不能改變字符串。 所以, str.replace方法並不按照我所期望的方式工作。 它並沒有就地修改字符串,而是返回一個新的字符串和所要求的替換。

嘗試:

encrypted_str = encrypted_str.replace(encrypted_str[j], dec_str2[k], 2)

如果你打算做很多這樣的替換,那麼將字符串轉換成字符列表,逐個進行修改,然後使用str.join將列表再次變成一個字符串,重做。

https://ffff65535.com

我最初嘗試使用=運算符來分配值,但它返回一個錯誤,然後我嘗試使用string.replace()

encrypted_str.replace(encrypted_str[j], dec_str2[k], 2)

encrypted_str.replace(encrypted_str[j], unichr(ord(dec_str2[k]) - 32), 2)

但它正在返回原來的價值。

幫助了解如何正確使用替換API來提供正確的結果還有其他任何可以用來代替unichr() API。

encrypted_str是由用戶從encrypted_str = raw_input() dec_str2是用戶輸入的freq字符串。 這個問題幾乎不涉及我想知道如果我正在使用replcae() API錯誤的變量,因為它給了我不變的輸出為encrypted_str我們可以使用encrypted_str[j] 將返回一個字符從字符串定義子字符串replace() API。 我用encrypted_str.replace(encrypted_str[j], unichr(ord(dec_str2[k]) - 32), 1) max取代1而不是2 (因為我只需要一個替換)。

我需要做的實際操作將在C中,如下所示: encrypted_str[j] = dec_str2[k] -32

由於我是新來的蟒蛇我試圖找到一個替代品。


Python字符串是不可變的。 這意味著一個字符串不能被你的文章中描述的方法調用修改。 您必須使用賦值才能使用方法調用中返回的字符串。

例如:

encrypted_str = encrypted_str.replace(encrypted_str[j], dec_str2[k], 2)

現在encrypted_str包含新的值。





replace