亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么調用PythonString方法不做任何事情,除非您分配它的輸出?

為什么調用PythonString方法不做任何事情,除非您分配它的輸出?

江戶川亂折騰 2019-06-01 14:37:58
為什么調用PythonString方法不做任何事情,除非您分配它的輸出?我試著做一個簡單的字符串替換,但我不知道為什么它似乎不工作:X = "hello world"X.replace("hello", "goodbye")我想換個詞hello到goodbye,因此應該更改字符串。"hello world"到"goodbye world"..但X仍然存在"hello world"..為什么我的代碼不起作用?
查看完整描述

2 回答

?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

這是因為字符串在Python中是不可變的。.

這意味著X.replace("hello","goodbye")回報一份X換人..因此,您需要替換這一行:

X.replace("hello", "goodbye")

這一行:

X = X.replace("hello", "goodbye")

更廣泛地說,對于所有改變字符串內容“就地”的Python字符串方法來說,這都是正確的。,G.replace,strip,translate,lower/upper,join,...

如果要使用,必須將它們的輸出分配給某物。而不是扔掉它。

X  = X.strip(' \t')X2 = X.translate(...)Y  = X.lower()Z  = X.upper()A  = X.join(':')B  = X.capitalize()C  = X.casefold()

諸若此類。


查看完整回答
反對 回復 2019-06-01
?
溫溫醬

TA貢獻1752條經驗 獲得超4個贊

所有字符串功能為lowerupperstrip返回字符串而不修改原始字符串。如果您試圖修改字符串,正如您可能認為的那樣well it is an iterable它會失敗的。

x = 'hello'x[0] = 'i' #'str' object does not support item assignment

關于字符串不可變的重要性,有一個很好的解讀:為什么Python字符串是不可變的?使用它們的最佳實踐


查看完整回答
反對 回復 2019-06-01
  • 2 回答
  • 0 關注
  • 681 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號