Python | 文字列操作

Python
スポンサーリンク

ここからは「文字列の操作」について、スライス(切り出し)置換(文字の入れ替え)を中心に、初心者向けにわかりやすく解説します。


スライス(文字列の一部を取り出す)

スライスは「文字列の一部を切り出す」操作です。
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"
Python

2. 文字を入れ替える

greeting = "Good morning"
print(greeting.replace("morning", "evening"))
# → "Good evening"
Python

3. 文字列を逆さにする(スライスの応用)

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("りんごが好きなんだね!")
Python

2. CSV風の文字列を分割

data = "100,200,300"
numbers = data.split(",")
print(numbers)  
# → ['100', '200', '300']
Python

3. 検索して部分を取り出す

text = "My email is test@example.com"
pos = text.find("@")
print(text[pos:])  
# → "@example.com"
Python

まとめ

  • in:含まれているかどうか(True/False)
  • find():含まれていれば位置(インデックス)、なければ -1
  • split():区切り文字で分割してリストにする

ここまでで「探す」「切る」「置き換える」といった文字列操作の基本がそろいました。
次のステップとしては「結合(join)」を学ぶと、分割したリストを再び文字列に戻せるようになります。


ここまで「分割(split)」を学んだので、次はその逆の操作である 結合(join) を理解すると、文字列操作の幅がぐっと広がります。


結合(join)とは?

  • リストなどの複数の文字列を、ひとつの文字列にまとめるときに使う
  • 書き方は: "区切り文字".join(リスト)

👉 「区切り文字」を間に挟んで、リストの要素をつなげるイメージです。


例題

1. カンマで結合

fruits = ["apple", "banana", "orange"]

result = ",".join(fruits)
print(result)
# → "apple,banana,orange"
Python

2. スペースで結合

words = ["I", "like", "apples"]

sentence = " ".join(words)
print(sentence)
# → "I like apples"
Python

3. 改行で結合

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つはセットで覚えると便利

👉 これで「文字列を分解して加工し、また組み立て直す」という流れができるようになりました。

Python
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました