慕碼人8056858
2019-09-26 15:19:16
字符串替換似乎不起作用我最初嘗試使用=運(yùn)算符來賦值,但返回了錯誤,然后嘗試使用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)但是它正在返回原始價值。提供有關(guān)如何正確使用替換API以獲得正確結(jié)果的幫助。還有其他任何可用的API可以代替unichr()。在encrypted_str正在從用戶采取的encrypted_str = raw_input() dec_str2是頻率字符為通過用戶輸入。這個問題幾乎不涉及我想知道我是否使用了replcae()錯誤的API 變量,因?yàn)樗鼮槲姨峁┝瞬蛔兊妮敵?,encrypted_str 我們是否可以使用encrypted_str[j] 從字符串中返回一個字符來定義replace()API 的子字符串。我使用encrypted_str.replace(encrypted_str[j], unichr(ord(dec_str2[k]) - 32), 1) 最大替換1而不是2(因?yàn)槲抑恍枰粋€替換)。我需要完成的實(shí)際操作將在C中進(jìn)行,如下所示: encrypted_str[j] = dec_str2[k] -32。因?yàn)槲沂莗ython的新手,所以我正在嘗試尋找替代品。
2 回答

動漫人物
TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個贊
Python中的字符串是不可變的。這意味著給定的字符串對象在創(chuàng)建后將永遠(yuǎn)不會更改其值。這就是為什么像這樣的元素分配some_str[4] = "x"
將引發(fā)異常的原因。
由于類似的原因,str
該類提供的任何方法都不能使字符串發(fā)生突變。因此,該str.replace
方法無法按照我認(rèn)為的方式工作。而不是就地修改字符串,它返回帶有請求的替換的新字符串。
嘗試:
encrypted_str = encrypted_str.replace(encrypted_str[j], dec_str2[k], 2)
如果要進(jìn)行許多這樣的替換,將字符串轉(zhuǎn)換為字符列表,一次一個地進(jìn)行修改,然后str.join
在完成后使用該列表再次將其轉(zhuǎn)換為字符串可能是有意義的。

達(dá)令說
TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個贊
Python字符串是不可變的。這意味著不能按照您的帖子中的方法調(diào)用來修改字符串。您必須使用賦值才能使用方法調(diào)用中返回的字符串。
例如:
encrypted_str = encrypted_str.replace(encrypted_str[j], dec_str2[k], 2)
現(xiàn)在encrypted_str
包含新值。
添加回答
舉報
0/150
提交
取消