Python文字列操作マスター:replace、join、split、reverse、大文字小文字変換
Pythonでは、文字列を含むすべてのエンティティがオブジェクトです。文字列は単にクォートで囲まれた文字のシーケンスです。
例:var = "Hello World!"
このガイドでは、実例とベストプラクティスに基づいた最も一般的な文字列操作を紹介します。
- スライシングによる文字アクセス
- 文字列演算子と連結
- 部分文字列の置換
- 大文字小文字変換 (upper/lower/capitalize)
joinによる柔軟な連結- 文字列の反転
- 文字列の分割
文字列内の文字アクセス
Pythonには独立した文字型がなく、単一文字は長さ1の文字列です。角括弧とインデックスでスライスします。
var1 = "Guru99!"
var2 = "Software Testing"
print("var1[0]:", var1[0])
print("var2[1:5]:", var2[1:5])
出力:var1[0]: G
var2[1:5]: oftw
文字列演算子
演算子で素早い操作が可能:
| 演算子 | 説明 | 例 |
|---|---|---|
| [] | 単一文字アクセス | x = "Guru" |
| [:] | 範囲スライス (終端除外) | x = "Guru" |
| in / not in | メンバーシップチェック | print("u" in x) — True |
| r/R | 生文字列リテラル (エスケープ無視) | print(r"\n") — "\\n"出力 |
| % | 文字列フォーマット (旧スタイル) | print('%s %d' % ('guru', 99)) — "guru 99" |
| + | 2文字列連結 | print("Guru" + "99") — "Guru99" |
| * | 文字列繰り返し | print("Guru" * 2) — "GuruGuru" |
文字列の更新
文字列はイミュータブルなので、変数を新しい値に再代入します。
x = "Hello World!" print(x[:6]) # "Hello" print(x[0:6] + "Guru99") # "Hello Guru99"
部分文字列の置換
replace()メソッドは、部分文字列の全出現を置換した新しい文字列を返します。
old = "I like Guru99"
new = old.replace('like', 'love')
print(new) # "I love Guru99"
大文字小文字変換
大文字、小文字、先頭大文字に変換。
text = "python at guru99" print(text.upper()) # "PYTHON AT GURU99" print(text.capitalize()) # "Python at guru99" print(text.upper().lower()) # 再び小文字
文字の結合
join()メソッドは、区切り文字を使って文字列のイテラブルを連結します。
print(":".join("Python")) # "P:y:t:h:o:n"
文字列の反転
reversed()とjoin()を使って反転。
s = "12345"
print(''.join(reversed(s))) # "54321"
文字列の分割
区切り文字に基づいて文字列をリストに分割。
sentence = "guru99 career guru99"
print(sentence.split(' ')) # ['guru99', 'career', 'guru99']
print(sentence.split('r')) # ['gu', 'u99 ca', 'ee', ' gu', 'u99']
イミュータビリティの注意
文字列はインプレースで変更できません。replace()のようなメソッドは新しい文字列を返します。
x = "Guru99"
print(x.replace("Guru99", "Python")) # 依然 "Guru99"
# 変数を変更するには
x = x.replace("Guru99", "Python")
print(x) # "Python"
Python 2互換性
以下はPython 2用の等価コードで、print文は括弧なしです。
# 値へのアクセス
var1 = "Guru99!"
var2 = "Software Testing"
print "var1[0]:", var1[0]
print "var2[1:5]:", var2[1:5]
# 更新例
x = "Hello World!"
print x[:6]
print x[0:6] + "Guru99"
# 置換例
old = 'I like Guru99'
print old.replace('like', 'love')
# 大文字小文字変換
text = "python at guru99"
print text.upper()
print text.capitalize()
print text.lower()
# join
print ":".join("Python")
# 反転
s = "12345"
print ''.join(reversed(s))
# 分割
word = "guru99 career guru99"
print word.split(' ')
print word.split('r')
# イミュータビリティデモ
x = "Guru99"
print x.replace("Guru99", "Python")
x = x.replace("Guru99", "Python")
print x
まとめ
- スライシング(
[],[:])で精密な文字アクセス - 文字列演算子(+, *, in, not in)で連結とメンバーシップチェック
replace()で部分文字列置換;新しい文字列を返すことを覚えておくupper(),lower(),capitalize()でケース変換join()を任意の区切り文字と組み合わせて柔軟な連結reversed()とjoin()で反転、split()で分割- 文字列のイミュータビリティにより、変更を捕捉するには再代入が必要
Python
- C 言語の文字列をマスター: 宣言、入力、出力、ライブラリ関数
- Python print()関数の実践ガイド:基本から応用まで
- Python strip()メソッド完全ガイド:実践例付き
- Python str.count()マスター:文字と部分文字列のカウント実例集
- Python format()文字列を明確な例でマスター
- Python len()関数:オブジェクトの長さを測る実践ガイド
- Python String.find()メソッド完全ガイド:構文、例、代替手法
- Java文字列をマスター:生成、メソッド、ベストプラクティス
- Java Enumの文字列表現マスター:デフォルト、オーバーライド、高度なパターン
- Java文字列置換マスター:replace()、replaceAll()、replaceFirst()徹底解説
- Java String toLowerCase() & toUpperCase():ロケール対応テキストケース変換