どんな言語でも
文字列操作はプログラミングの基本になります
文字列型の関数(メソッド)は
たくさんあるので見ていきましょう
基本的にPythonの文字列は
部分的な書き換えができません
文字を入れ替えたい場合は
新たなオブジェクトとして
生成しなければなりません
そんな場合はreplaceメソッドを使います
replace('検索文字列','変更後の文字列')
リストなどを連結する際はjoinメソッドが使えます
'連結する際に使う文字列'.join(変数名)
繰り返しは * 演算子で指定回数を加えます
文字列の中の文字をを検索したい場合はfindを使います
該当文字があれば0番目から始まる番号を返し、無ければ-1を返します
find('文字')
第二引数で検索を開始する位置を指定できます
find('文字',index)
9
値の埋め込み
文字列に % 演算子で文字列やlist/tupleを与えると以下のように展開できます
%sの部分ですが、使う値の型によって変わります
エラーで怒られるので 注意しましょう
辞書型を埋めることもできます
%の後にキーと値を指定します
両端の空白削除
空白削除に strip, lstrip, rstripが使えます
大文字、小文字
uppper()とlower()で行います
検索文字の有る無し
文字列の中に特定の文字があるかを判定する方法になりますが
何通りかあります
文字列.find('検索文字列')
検索文字列あればそのインデックスを返す
無ければ-1を返す
文字列.index('検索文字列')
検索文字列あればそのインデックスを返す
無ければ例外を返す
文字列.count('検索文字列')
検索文字列あればその個数を返す
無ければ0を返す
'検索文字列' in 文字列
検索文字列があればTrue返す
無ければFalseを返す
恐らく一番楽なのは in を使う方法でしょう
状況に応じて使い分けてください
文字列操作はプログラミングの基本になります
文字列型の関数(メソッド)は
たくさんあるので見ていきましょう
基本的にPythonの文字列は
部分的な書き換えができません
文字を入れ替えたい場合は
新たなオブジェクトとして
生成しなければなりません
そんな場合はreplaceメソッドを使います
replace('検索文字列','変更後の文字列')
musuka1 = '3分間待ってやる'
musuka1.replace('3','30')
'30分間待ってやる'リストなどを連結する際はjoinメソッドが使えます
'連結する際に使う文字列'.join(変数名)
musuka2 = ['見ろ!', '人が', 'ゴミのようだ!'] ','.join(musuka2)
'見ろ!人が!ゴミのようだ'
繰り返しは * 演算子で指定回数を加えます
balsu = 'バルス' balsu * 10
'バルスバルスバルスバルスバルスバルスバルスバルスバルスバルス'
文字列の中の文字をを検索したい場合はfindを使います
該当文字があれば0番目から始まる番号を返し、無ければ-1を返します
find('文字')
第二引数で検索を開始する位置を指定できます
find('文字',index)
s = 'abcdeffcabc'
index = s.find('b') # indexは1(2文字目)
print(index)
index = s.find('b', 2) # indexは9(10文字目)
print(index)
19
値の埋め込み
文字列に % 演算子で文字列やlist/tupleを与えると以下のように展開できます
aa = 'Python'
bb = 'いいかんじの言語です'
print ('%s は %s' % (aa, bb)) Python は いいかんじの言語です
%sの部分ですが、使う値の型によって変わります
%s- 文字列として展開%d- 整数として展開%f- 小数点数として展開
エラーで怒られるので 注意しましょう
strList = [1,2,3]
print ('listの値は: %s' % (strList,))
listの値は: [1, 2, 3]
辞書型を埋めることもできます
%の後にキーと値を指定します
dictA = dict(first='カツオ', family='磯野')
print ('僕の名は ・ ・ ・ %(first)s, %(family)s %(first)s' % dictA)
僕の名は ・ ・ ・ カツオ, 磯野 カツオ前述のformatメソッドでも埋め込みができます
print ('{0}{1}{2}'.format('乙', 'Py','大好き'))
乙Py大好き
両端の空白削除
空白削除に strip, lstrip, rstripが使えます
strip :両端からスペース・タブ文字・改行(\rおよび\n)を削除した文字列を返す
lstrip:stripと同等の処理を左端のみに適用したものを返す
rstrip:stripと同等の処理を右端のみに適用したものを返す
spaceX = ' SpaceX '
print ('A' + s.strip() + 'B')
print ('A' + s.lstrip() + 'B' )
print ('A' + s.rstrip() + 'B' )
ASpaceXB ASpaceX B A SpaceXB
大文字、小文字
uppper()とlower()で行います
print ('small'.upper() )
print ('BIG'.lower() )
SMALL big
検索文字の有る無し
文字列の中に特定の文字があるかを判定する方法になりますが
何通りかあります
文字列.find('検索文字列')
検索文字列あればそのインデックスを返す
無ければ-1を返す
文字列.index('検索文字列')
検索文字列あればそのインデックスを返す
無ければ例外を返す
文字列.count('検索文字列')
検索文字列あればその個数を返す
無ければ0を返す
'検索文字列' in 文字列
検索文字列があればTrue返す
無ければFalseを返す
statesX = 'ぶったね、二度もぶった。ぶったね親父にも打たれたことないに!!' innerX ='親父' print(statesX.find(innerX)) print(statesX.index(innerX)) print(statesX.count(innerX)) print(innerX in statesX)
16 16 1 True
恐らく一番楽なのは in を使う方法でしょう
状況に応じて使い分けてください

コメントする