1. ホーム
  2. python

[解決済み] 文字列メソッドを呼び出しても、その出力が代入されない限り何もしないのはなぜですか?

2022-05-14 19:22:56

質問

簡単な文字列の置換を行おうとするのですが、なぜかうまくいかないのです。

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

を変更したい hellogoodbye という文字列を変更する必要があります。 "hello world""goodbye world" . しかし,X はそのまま "hello world" . なぜ私のコードは動作しないのでしょうか?

どうすればいいですか?

これは 文字列はPythonでは不変です .

ということは X.replace("hello","goodbye") は以下を返します。 のコピーです。 X を置き換えたものです。 . そのため、この行を置き換える必要があります。

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

をこの行に置き換えてください。

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

もっと広く これは、文字列の内容を "in-place" で変更するすべての Python 文字列メソッドに当てはまります。 は、例えば 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()

といった具合です。