[python3] 便利な文字列操作まとめ

Posted on 2019/03/17 in programming , Updated on: 2019/03/30

文字列のスライス

Python の文字列は、リストとと同じようにインデックスでスライスすることができる。

str = 'I am a SAIRA'
print(str[0])
# I
print(str[4])
# a
print(str[5:12])
# a SAIRA

in, not in 演算子

in, not in 演算子もリストと同じように利用可能。戻り値は、Boolean型(True/False)。

'SAIRA' in 'I am SAIRA'
# True

'saira' not in 'I am SAIRA'
# True

join() メソッド

文字列のリストを渡すと、リスト内の文字列を連結させた文字列を返す。

str_list = ['I', 'am', 'Saira']

''.join(str_list)
# IamSaira

' '.join(str_list)
# I am Saira

','.join(str_list)
# I,am,Saira

split() メソッド

上記のjoin()メソッドとは逆に、文字列を分割して、リストを返す。

str = 'I am Saira'

str.split()
# ['I', 'am', 'Saira']

str.split('a')
# ['I ', 'm S', 'ir', '']

rjust(), ljust(), center() メソッド

文字列にスペースを挿入して、右揃え、左揃え、中央揃えに配置した文字列を返す。また、第二引数に1文字を渡すと、スペースではなく渡された文字でスペースを埋められる。

str = 'SAIRA'

str.rjust(20)
# '               SAIRA'

str.ljust(10)
# 'SAIRA     '

str.center(15, '=')
# '=====SAIRA====='

strip(), rstrip(), lstrip() メソッド

文字列から、スペース、タブ、改行を除去するメソッド。

str = '   SAIRA   '

str.strip()
# 'SAIRA'

str.lstrip()
# 'SAIRA   '

str.rstrip()
# '   SAIRA'

upper(), lower() メソッド

文字列全てを大文字にしたり、小文字にするメソッド。これらは、元の文字列を変更しない。

str1 = 'Saira Blog'
print(str1.upper())
# SAIRA BLOG

print(str1.lower())
# saira blog

print(str1)
# Saira Blog => str1 の中身は変更されてない。

startswith() endswith() メソッド

文字列がメソッドに渡された文字列で始まるかどうかを判定し、ブーリアン型の値(True/False)を返す。

str = 'saira blog'
print(str.startswith('saira'))
# True

print(str.endwith('saira'))
# False

is~() メソッド

isupper()(全て大文字か)や islower()(全て小文字か)など、is~() で文字列の種類を識別してブーリアン型の値(True/False)を返すメソッド。ユーザ入力の文字列判定に主に利用される。

str = 'saira blog'
print(str.islower())
# True

print(str.isupper())
# False

print(str.upper().isupper())
# True

他にも、下記のようなものがある。

メソッド 判定基準
isalpha() 1文字以上の英文字だけから構成されているか
isalnum() 1文字以上の英数字から構成されているか
isdecimal() 1文字以上の数字だけから構成されているか
isspace() スペース、タブ、改行のみで構成されているか
istitle() 大文字から始まり残り全てが小文字英単語で構成されているか

エスケープ文字

Python のエスケープ文字は、バックスラッシュ(\)で表現される。バックスラッシュの後に、エスケープさせたい文字を書く。

エスケープ文字 表現
\t タブ
\n 改行
\\ バックスラッシュ