Pythonで文字列操作を行う方法を紹介します。
文字列を操作するといっても、
変換・連結・置換・分割・トリミング・桁数揃え・検索など
やりたいことは様々あります。
この記事ではPythonでよく使用する文字列操作をマスターするために役立ててください。
Pythonの文字列利用
Pythonでは以下のように文字列を宣言し利用しますます。
string = "Hello World."
string = 'Hello World.'
シングルクォーテーションもしくはダブルクォーテーションでくくって使用することが出来ます。
どちらも機能的に違いはありませんが、プロジェクトやドキュメントに合わせて使い分けましょう。
ちなみに海外ではシングルクォーテーションを使用することが圧倒的に多いです。
これは海外ではシングルクォーテーションがタイピングしやすく、
ダブルクォーテーションがタイピングしにくいことが起因しているようです。
Githubや英語のドキュメントを作成する時にはシングルクォーテーションの方がよさそうです。
複数行の文字列を扱う
複数行の扱う場合には、シングルクォーテーションもしくはダブルクォーテーションを3つ重ねてくくります。
どちらでも動作に違いはありません。
string = '''\
Hello World.
Hello World.
Hello World.\
'''
string = """\
Hello World.
Hello World.
Hello World.\
"""
改行コードの有無を指定する場合には「\」を使用します。
以下で動作の違いを確認してみましょう。
>>> # 改行を入れる
... string = '''
... Hello World.
... Hello World.
... Hello World.
... '''
>>> print(string)
Hello World.
Hello World.
Hello World.
>>>
>>> # 開始と終了行に改行を入れない
... string = '''\
... Hello World.
... Hello World.
... Hello World.\
... '''
>>> print(string)
Hello World.
Hello World.
Hello World.
>>>
>>> # 改行を入れない
... string = '''\
... Hello World.\
... Hello World.\
... Hello World.\
... '''
>>> print(string)
Hello World.Hello World.Hello World.
数値・配列型を文字列に変換
数値型データや配列型を文字列にするには「str」関数を使用します。
str(<数値型> | リスト型)
以下が使用方法です。
>>> number = 100
>>> list = [100, 200, 300, 400]
>>>
>>> type(number)
<class 'int'>
>>> type(array)
<class 'list'>
>>>
>>> str(number)
'100'
>>> str(array)
'[100, 200, 300, 400]'
>>>
>>> type(str(number))
<class 'str'>
>>> type(str(array))
<class 'str'>
文字列を連結
文字列を連結するには「+」を使用します。
<文字列> + <文字列>
以下が実際に連結させた例です。
>>> stringA = 'Hello '
>>> stringB = 'World.'
>>> string = stringA + stringB
>>> print(string)
Hello World.
文字列を置換
文字列の置換は文字列のメソッド「replace」を使用します。
<文字列>.replace(<置換する文字列>,<置換させる文字列>)
以下が実際に文字列を置換させた例です。
>>> string_bf = 'Hello World.'
>>> string_af = string.replace('World.', 'Python World!!!')
>>> print(string_af)
Hello Python World!!!
文字列を分割
文字列の置換は文字列のメソッド「split」を使用します。
また分割した文字列はリスト型で返されますので注意してください。
<文字列>.split(<セパレータの文字列>)
以下が実際に文字列を分割させた例です。
>>> string = 'Hello World.'
>>> print(string.split(' '))
['Hello', 'World.']
>>>
>>> for val in string.split(' '):
... print(val)
...
Hello
文字列を大文字・小文字に変換
大文字にするのは文字列のメソッド「upper」、
小文字にするのは文字列のメソッド「lower」を使用します。
# 大文字に変換
<文字列>.upper()
# 小文字に変換
<文字列>.lower()
以下が実際に文字列を大文字・小文字に変換させた例です。
>>> string = 'Hello World.'
>>> upper_string = string.upper()
>>> lower_string = string.lower()
>>> print(upper_string)
HELLO WORLD.
>>> print(lower_string)
hello world.
文字列をトリミング
空白文字の文字列のトリミングは先頭からは文字列のメソッドの「lstrip」、
行末からは「rstrip」を使用します。
英語は左から右に書きますので、左側が先頭、右側が行末になります。
「lstripは左(left)からトリム」、
「rstripは右(right)からトリム」するということになりますので覚えておきましょう。
# 先頭から空白行をトリム
<文字列>.lstrip()
# 行末から空白行をトリム
<文字列>.rstrip()
以下が実際に文字列を置換させた例です。
>>> string = ' Hello World.'
>>> lstrip_string = string.lstrip()
>>> print(lstrip_string)
Hello World.
文字列の桁数を揃える(0埋めなど)
文字列の桁数を揃えるのは文字列のメソッド「ljust」と「rjust」を使用します。
文字列を左揃えにして桁数を揃えるは「ljust」、文字列を右揃えにして桁数を揃えるは「rjust」です。
# 左揃え
<文字列>.ljust(<桁数:数値>, <文字>)
# 右揃え
<文字列>.rjust(<桁数:数値>, <文字>)
以下が実際に文字列の桁数を揃えた例です。
>>> string = '12345'
>>> ljust_string = string.ljust(10, '0')
>>> rjust_string = string.rjust(10, '0')
>>> print(ljust_string)
1234500000
>>> print(rjust_string)
0000012345
>>>
>>> ljust_string = string.ljust(10, '*')
>>> rjust_string = string.rjust(10, '*')
>>> print(ljust_string)
12345*****
>>> print(rjust_string)
*****12345

退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミングposted with ヨメレバ
Al Sweigart オライリージャパン 2017-06-03