Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ Stringの不変性 | Strings
Pythonのデータ型

bookStringの不変性

メニューを表示するにはスワイプしてください

Python では、文字列はイミュータブル(不変)です。一度作成された文字列の内容(文字)は、その場で変更できません。文字列を「変更」しようとすると、実際には新しい文字列が作成されます。これは、正確性(意図しないその場での編集を防ぐ)やパフォーマンス(大きな文字列の構築方法)に影響します。

インプレース編集不可

インデックスで文字を読み取ることはできますが、代入はできません。

123456
s = "hello" t = "H" + s[1:] # Creates a new string: "Hello" print(t) s[0] = "H" # TypeError: strings don't support item assignment
copy

ほとんどの文字列メソッドは新しい文字列を返し、元の文字列は変更されません。

12345678
# Cleaning up user input from a registration form user_name = " Alice " user_name.strip() # returns "Alice", but the variable still has spaces print(user_name) # " Alice " user_name = user_name.strip() # assign the cleaned value back print(user_name) # "Alice" → cleaned and ready to store
copy

メソッドの連結(チェーン)は可能ですが、その都度新しいオブジェクトが生成されることに注意してください。

123456
# Normalizing a user's chat message before saving it user_message = " hello\n" clean_message = user_message.strip().upper() print(user_message) # original remains " hello\n" print(clean_message) # "HELLO" → cleaned and ready for processing
copy

新しい文字列を作成して「変更」

スライス、replace、連結を使って新しい値を生成。

1234567
s = "data" s = s.replace("t", "T") # "daTa" print(s) s = s[:1] + "A" + s[2:] # "dATa" print(s)
copy

効率的な構築

大きなループ内で繰り返し + を使うと遅くなることがあります(多くの中間文字列が生成されるため)。一般的なパターンは、パーツを収集して一度だけ結合する ことです:

1234
# Combining message parts received from a device response_parts = ["Status:", " ", "200", "\n", "Success"] response_message = "".join(response_parts) # "Status: 200\nSuccess" print(response_message)
copy
Note
ノート

次の章で、さらに多くの結合やフォーマットのパターンについて学習します。

1. どの行が文字列をその場で変更しようとしてエラーになりますか?

2. このコードの出力は何ですか?

3. 多数の小さな部分から長い文字列を組み立てる必要があります。推奨される方法はどれですか?

question mark

どの行が文字列をその場で変更しようとしてエラーになりますか?

正しい答えを選んでください

question mark

このコードの出力は何ですか?

正しい答えを選んでください

question mark

多数の小さな部分から長い文字列を組み立てる必要があります。推奨される方法はどれですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 3.  4

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 3.  4
some-alt