不変性の謎を明らかにする: 文字列メソッドがソース文字列を変更しない理由
プログラマーは、次を使用して文字列を変更しようとすると、困惑する現象に遭遇することがよくあります。 .replace や .strip などの Python の文字列メソッド。見た目に反して、これらのメソッドは元の文字列を直接変更しません。根本的な原因を詳しく調べるために、例を調べてみましょう:
X = "hello world" X.replace("hello", "goodbye")
興味深いことに、このコードを実行した後、X の値は予期された "goodbye world" ではなく "hello world" のままです。
この謎の核心は、Python の文字列の不変性にあります。リストのような変更可能なデータ構造とは異なり、文字列は直接変更できません。したがって、.replace や .strip などの文字列メソッドは元の文字列を変更せず、指定された変更を加えた新しい文字列を返します。元の文字列を変更するには、メソッドの出力をその文字列に割り当てる必要があります。
X = X.replace("hello", "goodbye")
この割り当てにより、元の文字列 X が目的の変更で確実に変更されます。
この不変性は、次のことに適用されるだけではありません。 .replace や .strip だけでなく、. lower、.upper、.join など、文字列の内容を変更するすべての Python 文字列メソッドにも適用されます。文字列を効果的に操作するには、メソッドの出力を新しい変数または元の文字列に割り当てる必要があることを覚えておくことが重要です。
以上がPython の文字列メソッドが元の文字列を変更しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。