文字列メソッド(.replace や .strip など)を呼び出しても文字列が変更(変更)されないのはなぜですか? 質問する

文字列メソッド(.replace や .strip など)を呼び出しても文字列が変更(変更)されないのはなぜですか? 質問する

簡単な文字列置換を行うために次のコードを試しました:

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

Xから に変更されないのはなぜですか?"hello world""goodbye world"

ベストアンサー1

それの訳はPythonでは文字列は不変である

つまり、X.replace("hello","goodbye")リターンはX置き換えたコピーそのため、次の行を置き換える必要があります。

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

次の行を追加します:

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

より広く、これは文字列の内容を変更するすべてのPython文字列メソッドに当てはまります。たとえばreplace、、、/ 、、...strip​​translatelowerupperjoin

使用したい場合は、その出力を何かに割り当てる必要があります捨てないで、例えば

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

等々。

おすすめ記事