文字列メソッドを使おう
文字列には、分割・結合・空白除去・置換・大文字小文字変換など、さまざまな操作を行うメソッドが用意されています。このレッスンでは、データ処理やテキスト操作でよく使われる文字列メソッドを学びます。
.split() で文字列を分割する
.split() メソッドを使うと、文字列を指定した区切り文字で分割し、リストにすることができます。
text = "apple,banana,orange" fruits = text.split(",") print(fruits) # => ['apple', 'banana', 'orange']
引数を省略すると、空白(スペース、タブ、改行)で分割されます。
text = "Python is awesome" words = text.split() print(words) # => ['Python', 'is', 'awesome']
連続した空白も1つの区切りとして扱われます。
text = "Python is awesome" words = text.split() print(words) # => ['Python', 'is', 'awesome']
.split() はデータの解析でよく使われます。例えば、CSVのような区切り文字付きのデータを処理するときに便利です。
.join() でリストを結合する
.join() メソッドを使うと、リストの要素を指定した区切り文字で結合して1つの文字列にできます。
fruits = ["apple", "banana", "orange"] text = ",".join(fruits) print(text) # => apple,banana,orange
.join() は区切り文字の側から呼び出す点に注意してください。空文字列で結合すると、要素がそのまま連結されます。
chars = ["P", "y", "t", "h", "o", "n"] word = "".join(chars) print(word) # => Python
改行文字を使えば、各要素を別の行にできます。
lines = ["1行目", "2行目", "3行目"] text = "\n".join(lines) print(text) # => 1行目 # => 2行目 # => 3行目
.strip() で空白を除去する
.strip() メソッドを使うと、文字列の先頭と末尾にある空白を除去できます。
text = " Hello, World! " print(text.strip()) # => Hello, World!
先頭だけ除去したい場合は .lstrip()、末尾だけ除去したい場合は .rstrip() を使います。
text = " Hello, World! " print(text.lstrip()) # => Hello, World! (末尾の空白は残る) print(text.rstrip()) # => Hello, World!(先頭の空白は残る)
.strip() はユーザー入力の処理でよく使われます。入力の前後に余分な空白が含まれていることは多いため、これを取り除くことで正確なデータ処理ができます。
.replace() で文字列を置換する
.replace() メソッドを使うと、文字列内の一部を別の文字列に置き換えることができます。
text = "Hello, World!" new_text = text.replace("World", "Python") print(new_text) # => Hello, Python!
一致するすべての箇所が置き換えられます。
text = "apple, apple, apple" new_text = text.replace("apple", "orange") print(new_text) # => orange, orange, orange
空文字列に置き換えることで、特定の文字を削除することもできます。
text = "Hello, World!" new_text = text.replace(",", "") print(new_text) # => Hello World!
.upper() と .lower() で大文字・小文字を変換する
.upper() メソッドを使うと、文字列内のすべての小文字を大文字に変換できます。
text = "hello" print(text.upper()) # => HELLO
.lower() メソッドを使うと、すべての大文字を小文字に変換できます。
text = "HELLO" print(text.lower()) # => hello
大文字小文字を区別しない比較をするときによく使われます。
user_input = "YES" if user_input.lower() == "yes": print("承認されました") # => 承認されました
メソッドチェーン
文字列メソッドは新しい文字列を返すため、メソッドを連続して呼び出すことができます。これをメソッドチェーンと呼びます。
text = " Hello, World! " result = text.strip().lower().replace(",", "") print(result) # => hello world!
この例では、まず前後の空白を除去し、次に小文字に変換し、最後にカンマを削除しています。
まとめ
.split(区切り文字)で文字列をリストに分割できる(省略時は空白で分割).join(リスト)でリストの要素を結合して文字列にできる.strip()で先頭と末尾の空白を除去できる.lstrip()で先頭のみ、.rstrip()で末尾のみの空白を除去できる.replace(検索文字列, 置換文字列)で文字列を置換できる.upper()で大文字に、.lower()で小文字に変換できる- 文字列メソッドは新しい文字列を返すため、メソッドチェーンで連続して呼び出せる
演習に挑戦