※さらに30日間返金保証ありなので、実質リスクゼロ。
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
今回はpythonにおける文字列を扱うための関数に注目していきたいと思います。
pythonにおける文字列の表現の仕方
pythonでは、文字列を' '(シングルクォート)、もしくは" "(ダブルクォート)で囲って表現します。
''' '''(トリプルクォート)で文字列を囲むと、行をまたいだ文字列も表現することができます。以下に例を示します。
>>>str = '''君が代は ...千代に八千代に ...さざれ石の ...いわおとなりて ...苔のむすまで''' >>>print(str) 君が代は 千代に八千代に さざれ石の いわおとなりて 苔のむすまで
君が代がしっかり改行して出力されるはずです。
pythonで文字列を扱う関数
pythonには文字列に色々な操作を施すための関数が数多く存在しています。以下ではその中でもよく使う関数についてピックアップして紹介していきます。
str関数で文字列の型を変換する
まずは型変換のための関数についてです。str()関数を使えば、整数型や少数型など、別のデータ型のものも文字列に変換することができます。
以下に例を挙げました。
>>>a = 1.5 >>>type(a) float >>>type(str(a)) str
ここでtype()関数は、何の型か示してくれる関数です。最初aはfloat(少数)型ですが、str()関数を使うと、str(文字列)型に変換されているのが分かります。
len関数で文字列の長さを得る
len()関数を使うと文字列内の文字数を数えることができます。
以下に例を挙げます。
>>>str1 = 'あいうえお' >>>str2 = '' >>>len(str1) 5 >>>len(str2) 0
文字列はシングルクォートかダブルクォートで囲って表されるんでしたね。
上の結果を見ると文字列の長さをしっかり数えてくれているのが分かると思います。
また、空の文字列も0として数えてくれます。
split関数で文字列を分割する
split()関数を使う時は、分割したい文字列の後に.(カンマ)を付けて、さらにsplit(引数)を付けます。
ここで引数では文字列を指定するのですが、引数で指定された文字列ごとに分割したい文字列が分割され、部分文字列によってリストが作られます。
以下で例を挙げます。
>>>fruits = 'banana,grape,melon,apple,cherry' >>>fruits.split(',') ['banana', 'grape', 'melon', 'apple', 'cherry']
上の例では、最初にfruitsという変数は、','区切りで果物の名前が書かれた文字列になっており、split()関数の引数に文字列','を指定することによって、果物がそれぞれ分割されてリストに入っています。
join関数で文字列を結合する
join()関数はsplit()関数とは逆で、リストに入っている部分文字列を連結して1つの文字列にしてくれます。
記述の仕方は連結する際に間に挟んでいく文字列を書いた後に.(カンマ)で区切って、join(引数)とします。引数にはリストを指定します。
以下で例を挙げます。
>>>fruitslist = ['banana', 'grape', 'melon', 'apple', 'cherry'] >>>','.join(fruitslist) 'banana,grape,melon,apple,cherry'
上の例ではまずfruitslistというリストを作り、その後、文字列をくっつける際に間に入れる文字列として、','を指定し、join()関数の引数としてfruitslistをとっています。
すると出力としてリスト内の全部の単語が、','でつなぎ合わされて1つの文字列ができているのが分かると思います。
replace関数で文字列を置換する
replace()関数を使うと、文字列の中の部分文字列を簡単に書き換えることが可能になります。
replace()関数の引数は基本的に2つです。1つ目は置換前の部分文字列、2つ目は置換後の部分文字列を引数にします。
また、第三引数として数字を指定すると置換できる回数を指定できます。第三引数をとらない場合はマッチする文字列が全て置換されます。
以下で例を見ていきましょう。
>>>str = '人民の人民による人民のための政治' >>>str.replace('人民','政府') '政府の政府による政府のための政治' >>>str.replace('人民','政府',2) '政府の政府による人民のための政治'
1回目のreplace()関数では回数を指定せずに、置換前と置換後の文字列だけを指定してみました。すると、置換前の部分文字列である人民が全て政府に置き換わりました。
次に第三引数として2を指定すると、前から2つの人民だけ政府に置き換わりました。
strip関数で文字列を削除する
strip()関数では、引数に指定した文字列を削除できます。
以下で例を見ていきましょう。
>>>str = 'Hello Python' >>>str.strip('Python') 'Hello ' >>>str = 'Hello Python' >>>str.replace('Python','') 'Hello '
strip()関数の引数としてPythonをとっているので出力では元の文字列からPythonが消えています。
また、replace()関数の置換後の文字列に空の文字列を指定してあげることでも削除を行うことは可能です。
find関数で文字列を検索する
find()関数を使うと、文字列の中に特定の文字列が存在しているか調べることができます。find()関数の引数として検索したい文字列をとります。
出力では検索した文字列が最初に現れたインデックスを返します。
インデックスは文字列の1文字目が0、2文字目が1、3文字目が2という風に実際の文字とは1ずつずれています。また、マッチする文字列がない時は、出力として-1を返します。
以下に例を挙げていきます。
>>>str = '人民の人民による人民のための政治' >>>str.find('人民') 0 >>>str.find('政治') 14 >>>str.find('日本') -1
1つ目のfind()関数では人民を指定していますが、最初に出てくる人民は1文字目なのでインデックス0が出力されています。
2つ目のfind()関数では政治を指定していますが、政治は15文字目に出てくるのでインデックス14が出力されています。
3つ目のfind()関数では日本を指定していますが、日本は文字列の中に存在しないので、-1が出力として得られます。
まとめ
今回はpythonにおける文字列を扱うための関数について総括的に見ていきました。実際は文字列を合う関数はもっとたくさんあるのですが、それらは随時必要な時だけ調べて使えばいいでしょう。
今回取り上げた関数は覚えておくとよいものなので是非この機会にしっかり覚えていってください。
今後も定期的にプログラミング系の記事を発信していくので、興味のある人はブックマークして見にきてくれると嬉しいです!!
※さらに30日間返金保証ありなので、実質リスクゼロ。
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル