記事中には広告リンクやPRが含まれます

Pythonの文字列操作一覧をリファレンス形式でまとめます

Pythonの本 フリーランスエンジニアの働き方

Pythonの文字列はstr型です。stringの略です。
Pythonには文字列を操作する関数がたくさんあります。この記事では、そのうちよく使うものについて、リファレンス形式でまとめます。

スポンサーリンク

長さを取得する

文字列の長さを取得するには
len
を使います。

>>> len('abcdef')
6
>>> len('a')
1

比較

「内容が等しい」は
==
「内容が等しくない」は
!=
です。

>>> 'abc' == 'abc'
True
>>> 'abc' == 'def'
False
>>> 'abc' != 'abc'
False
>>> 'abc' != 'def'
True

アルファベットで大文字小文字が含まれるとき、大文字小文字を区別して比較したいならそのまま比較し、区別しないで比較したいなら全て大文字に直すか小文字に直すかして比較します。
大文字に直すのは
upper()
小文字に直すのは
lower()
です。

>>> 'Abc'.upper()
'ABC'
>>> 'Abc'.lower()
'abc'
>>> 'Abc' == 'aBc'
False
>>> 'Abc'.upper() == 'aBc'.upper()
True
>>> 'Abc'.lower() == 'aBc'.lower()
True

連結

+
で文字列を連結します。
+=
も使えます。

>>> 'abc' + 'def'
'abcdef'
>>> s = 'abc'
>>> s += 'def'
>>> s
'abcdef'

ただし、他のデータ型と文字列の間の+演算はできません。文字列として連結したいときは、str()で文字列に変換して連結します。

>>> 'abc' + 1
Traceback (most recent call last):
  File "", line 1, in 
TypeError: can only concatenate str (not "int") to str
>>> 'abc' + str(1)
'abc1'

検索

文字列の中に文字列が含まれているか検索するときには
in
を使います。

>>> 'cde' in 'abcdef'
True
>>> 'cde' in 'fedcba'
False

「その文字列で開始しているか」は
startswith
「その文字列で終了しているか」は
endswith
です。

>>> 'abcdef'.startswith('abc')
True
>>> 'abcdef'.endswith('def')
True

置換

文字列を置換したいときは、
replace(‘置換前の文字列’ , ‘置換後の文字列’)
を使います。

>>> 'abcdef'.replace('a','A')
'Abcdef'
>>> 'abcdef'.replace('abc','xyz')
'xyzdef'

ただし、変数を置換しても変数の値が変わるわけではないので注意しましょう。変数の値を変えたいときは自身に代入します。

>>> s = 'abcdef'
>>> s.replace('abc','ABC')
'ABCdef'
>>> s
'abcdef'
>>> s = s.replace('abc','ABC')
>>> s
'ABCdef'

置換後の文字列を空文字列にすることで削除が可能です。

>>> s = 'abcdef'
>>> s = s.replace('d','')
>>> s
'abcef'

分割と連結

splitで文字列を配列に分割します。区切り文字を指定してやります。

>>> s = 'a,b,c,d,e,f'
>>> t = s.split(',')
>>> t
['a', 'b', 'c', 'd', 'e', 'f']

また、joinで配列の文字列を連結することが可能です。
この関数は少し使い方が特殊なので、下のコードを見てみてください。

>>> t
['a', 'b', 'c', 'd', 'e', 'f']
>>> 'to'.join(t)
'atobtoctodtoetof'

このように、
‘間に挟める文字列’.join(文字列の配列)
として使います。

整形

strip
で、端の空白を切り落とします。改行コードも切り落とされます。

>>> '\n abcdef '.strip()
'abcdef'

Tkinterでフォームから値を取得したとき、stripをかけないと改行コードが入っていたりすることがあります。注意してください。

数への変換

最もよく使うのはint型への変換です。

>>> s = '123'
>>> s
'123'
>>> int(s)
123

他にも、datetimeモジュールにはdatetime型との相互変換の関数なども用意されています。

サンプルコード

では、ここまでのまとめとして、
禁止用語が含まれていたら*に置き換える
というコードを書いてみます。

コード

keywords = ['ダメ', 'ボツ']
data = 'このコードはダメだからボツにするよ'

print(data)

for keyword in keywords:
    data = data.replace(keyword, '*')

print(data)

実行結果

>>> keywords = ['ダメ', 'ボツ']
>>> data = 'このコードはダメだからボツにするよ'
>>>
>>> print(data)
このコードはダメだからボツにするよ
>>>
>>> for keyword in keywords:
...     data = data.replace(keyword, '*')
...
>>> print(data)
このコードは*だから*にするよ

文字列操作が簡潔に記述できることが分かったのではないでしょうか。
for文の強力さともあいまって、処理が簡潔ですね。

まとめ

Pythonのstr型には、便利な関数が多数用意されています。
この記事で挙げたものだけでも、使いこなせばかなりの武器になるはずです。
たいていのコーディングはカバーできるでしょう。
先頭だけを大文字にするなど、もっと複雑な関数もあります。
複雑な文字列処理に遭遇したら、自分で処理を書く前に、まず関数で解決できないか関数を探してみてください。

総じて、Pythonには強力な関数が用意されていることが多いので、できるだけそれらの関数を使うようにしましょう。

エージェントへの登録はお済みですか?

今すぐフリーランスになる気がなくても、エージェントへの登録は済ませておくことをお勧めします。理由はストレスや疲労が限界に達してからだと遅いから。

現在の自身のフリーランスとしての価値・単価相場を把握できますし、条件にあった案件をキャッチできるようになるので、いざフリーランスになろうとした際に早期に手が打てます。

エージェント登録は無料なので、今はフリーランスにならなくとも登録だけはしておくべきです。

真っ先に登録すべきエージェントは、圧倒的に多くのクライアントを開拓しているDYMテック。2500社の優良な取引先と、条件交渉力が強く高条件で仕事を紹介してくれるエージェントです。

案件紹介のみでなく、エンジニアとしてのキャリア相談や業界動向のキャッチアップなど、フリーランス対してのサポートも充実していますので、初めてフリーランスに挑戦する方も安心です。

DYMテックの詳細を見る

フリーランスエンジニアの働き方
スポンサーリンク
shigotoswitchをフォローする
しごとスイッチ