Python文字列操作の包括的ガイド

文字列の基礎

Pythonにおいて文字列は、単一引用符(')または二重引用符(")で囲まれたテキストとして定義されます。文字列はイミュータブル(不変)なデータ型であり、一度作成されると内容を変更することはできません。

文字列の基本操作

文字列は演算子を使用して操作や加工が可能です。

  • 連結: + 演算子を用いて文字列同士を繋げます。
  • 繰り返し: * 演算子で文字列を複製できます。
  • インデックスアクセス: str[index] で特定の文字にアクセスします。インデックスは0から始まります。
  • スライス: str[start:stop:step] 構文で部分文字列を抽出します。
  • 存在判定: innot in キーワードを使って、特定のサブ文字列が含まれているかを確認できます。
text = "PythonCode"
print(text[0:6])    # "Python"
print("Code" in text) # True
print("Java" in text) # False

フォーマット出力

文字列内にプレースホルダーを配置し、値を埋め込むことが可能です。

  • %s: 文字列
  • %d: 整数
  • %f: 浮動小数点(%.2f で小数点以下2桁など精度指定が可能)
user = "Alice"
points = 95.5
print("ユーザー: %s, スコア: %.1f" % (user, points))

エスケープシーケンスと原始文字列

バックスラッシュ(\)は特殊な意味を持つ文字を定義するために使用されます(例: \n 改行, \t タブ)。エスケープを無効化し、そのままの文字列として扱いたい場合は、文字列の先頭に r を付けて原始文字列(raw string)として宣言します。

主要な内蔵メソッド

文字列操作を効率化するための代表的なメソッド群です。

  • 数値評価: eval() は文字列をPythonの式として評価・実行します。
  • 大文字・小文字変換: upper(), lower(), capitalize(), title() など。
  • 配置とパディング: center(), ljust(), rjust(), zfill() などを使用して、幅を指定した整形が可能です。
  • 検索と置換: find(), index() で位置を特定し、replace() で内容を書き換えます。
  • 削除: strip(), lstrip(), rstrip() で空白や指定文字を削除します。
  • 分割と結合: split() でリストへ変換し、join() でリストから文字列を生成します。
  • 判定メソッド: isalpha(), isdigit(), startswith(), endswith() など、データ検証に適したメソッドが豊富です。
  • 変換: ord() で文字からASCII/Unicodeコードポイントへ、chr() でその逆変換を行います。
data = "  apple,banana,cherry  "
cleaned = data.strip().split(",")
print("-".join(cleaned)) # "apple-banana-cherry"

エンコーディング

文字列は encode() メソッドを使用してバイト列へ変換でき、逆にバイト列から文字列へは decode() メソッドで復元可能です。

タグ: Python String ProgrammingTips

7月11日 17:43 投稿