ここからは「文字列の操作」について、スライス(切り出し)と置換(文字の入れ替え)を中心に、初心者向けにわかりやすく解説します。
スライス(文字列の一部を取り出す)
スライスは「文字列の一部を切り出す」操作です。
Pythonでは インデックス(番号) を使って文字を指定します。
基本ルール
- 文字列の最初の文字は 0番目
文字列[開始:終了]で「開始から終了の直前まで」を取り出す
text = "Hello, World!"
print(text[0]) # → "H" (0番目の文字)
print(text[1:5]) # → "ello" (1番目から4番目まで)
print(text[:5]) # → "Hello" (最初から4番目まで)
print(text[7:]) # → "World!" (7番目から最後まで)
Python💡 ポイント
[:5]のように「開始」を省略すると「最初から」[7:]のように「終了」を省略すると「最後まで」
マイナスのインデックス
後ろから数えることもできます。
-1→ 最後の文字-2→ 最後から2番目
print(text[-1]) # → "!"
print(text[-6:]) # → "World!"
Python置換(文字列の入れ替え)
文字列は直接書き換えできません(イミュータブルといいます)。
その代わりに 新しい文字列を作る 形で置換します。
replace() メソッド
text = "I like apples"
new_text = text.replace("apples", "bananas")
print(new_text) # → "I like bananas"
Python💡 元の text は変わらず、新しい文字列が返ってきます。
応用例
1. 部分的に取り出す
word = "Python"
print(word[0:2]) # "Py"
print(word[-3:]) # "hon"
Python2. 文字を入れ替える
greeting = "Good morning"
print(greeting.replace("morning", "evening"))
# → "Good evening"
Python3. 文字列を逆さにする(スライスの応用)
word = "Python"
print(word[::-1]) # "nohtyP"
Python👉 [::-1] は「逆順に取り出す」というテクニックです。
まとめ
- スライス:
[開始:終了]で部分を切り出す - インデックスは0から始まる。マイナスで後ろから数えられる
- 置換:
replace(探す文字, 置き換える文字) - 文字列は直接変更できない → 新しい文字列を作る
👉 ここまで理解できれば、次は「検索(find, in)」や「分割(split)」などに進むと、文字列処理が一気に便利になります。
ここからは文字列操作の中でもよく使う 検索(find, in) と 分割(split) を、初心者向けにかみ砕いて解説します。
文字列の検索
1. in 演算子
- 「その文字列が含まれているか」を調べる
- 結果は True(含まれる) か False(含まれない)
text = "I like apples"
print("apples" in text) # True
print("banana" in text) # False
Python👉 in は「含まれているかどうか」を調べるだけで、位置はわかりません。
2. find() メソッド
- 「文字列が最初に出てくる位置(インデックス)」を返す
- 見つからなければ
-1を返す
text = "I like apples"
print(text.find("apples")) # 7 (7文字目から始まる)
print(text.find("banana")) # -1 (見つからない)
Python💡 find() は「どこにあるか」を知りたいときに便利です。
文字列の分割(split)
split() メソッド
- 指定した区切り文字で文字列を分割し、リストにして返す
text = "apple,banana,orange"
fruits = text.split(",")
print(fruits)
# → ['apple', 'banana', 'orange']
Python👉 区切り文字を指定しない場合は「空白」で分割されます。
sentence = "I like apples and bananas"
words = sentence.split()
print(words)
# → ['I', 'like', 'apples', 'and', 'bananas']
Python応用例
1. 単語が含まれているかチェック
sentence = "I like apples"
if "apples" in sentence:
print("りんごが好きなんだね!")
Python2. CSV風の文字列を分割
data = "100,200,300"
numbers = data.split(",")
print(numbers)
# → ['100', '200', '300']
Python3. 検索して部分を取り出す
text = "My email is test@example.com"
pos = text.find("@")
print(text[pos:])
# → "@example.com"
Pythonまとめ
in:含まれているかどうか(True/False)find():含まれていれば位置(インデックス)、なければ -1split():区切り文字で分割してリストにする
ここまでで「探す」「切る」「置き換える」といった文字列操作の基本がそろいました。
次のステップとしては「結合(join)」を学ぶと、分割したリストを再び文字列に戻せるようになります。
ここまで「分割(split)」を学んだので、次はその逆の操作である 結合(join) を理解すると、文字列操作の幅がぐっと広がります。
結合(join)とは?
- リストなどの複数の文字列を、ひとつの文字列にまとめるときに使う
- 書き方は:
"区切り文字".join(リスト)
👉 「区切り文字」を間に挟んで、リストの要素をつなげるイメージです。
例題
1. カンマで結合
fruits = ["apple", "banana", "orange"]
result = ",".join(fruits)
print(result)
# → "apple,banana,orange"
Python2. スペースで結合
words = ["I", "like", "apples"]
sentence = " ".join(words)
print(sentence)
# → "I like apples"
Python3. 改行で結合
lines = ["First line", "Second line", "Third line"]
text = "\n".join(lines)
print(text)
# 出力:
# First line
# Second line
# Third line
Pythonポイント
join()は リストの要素がすべて文字列である必要がある- 数値が混ざっているとエラーになる
- その場合は
str()で文字列に変換してから結合する
numbers = [1, 2, 3]
# エラーになる: ",".join(numbers)
# 正しい方法
numbers_str = [str(n) for n in numbers]
print(",".join(numbers_str))
# → "1,2,3"
Pythonまとめ
- split:文字列を分割してリストにする
- join:リストを結合して文字列にする
- 2つはセットで覚えると便利
👉 これで「文字列を分解して加工し、また組み立て直す」という流れができるようになりました。
