ホームページ >バックエンド開発 >Python チュートリアル >`.replace()` のような Python の文字列メソッドが元の文字列を変更しないのはなぜですか?

`.replace()` のような Python の文字列メソッドが元の文字列を変更しないのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-26 06:49:09658ブラウズ

Why Don't Python's String Methods Like `.replace()` Modify the Original String?

.replace() のような文字列メソッドが Python で文字列を直接変更しない理由

のようなメソッドを使用して文字列を変更しようとする場合。 Python で replace() または .strip() を実行すると、元の文字列が変更されない場合があります。この動作は、言語内の文字列の不変性に由来します。

不変オブジェクトは、その名前が示すように、その場で変更することができません。代わりに、不変オブジェクトのメソッドを呼び出すと、必要な変更を加えた新しいオブジェクトが返されます。たとえば、Python の場合:

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

上記のコードでは、.replace() は置換が行われた新しい文字列を返します。ただし、元の変数 X には、変更されていない文字列「hello world」がまだ保持されています。 X の値を更新するには、メソッド呼び出しの結果を割り当てる必要があります。

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

この原則は、文字列の内容を変更する Python のすべての文字列メソッドに適用されます。含む:

  • .replace()
  • .strip()
  • .translate()
  • . lower()
  • .upper()
  • .join()
  • .capitalize()
  • .casefold()

したがって、変更された文字列を保持したい場合は、これらのメソッドの出力を新しい変数または同じ変数に割り当てることが不可欠です。

以上が`.replace()` のような Python の文字列メソッドが元の文字列を変更しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。