【Python初心者】文字列操作の基本まとめ

Pythonでは文字列操作が簡単に文字列操作ができるよう、多くの機能が用意されています。

逆にいうと、機能が多いということなので、Python学習者が混乱する内容でもあります。

覚えることは多くても、機能自体はそこまで難しくありません

この記事では、Python学習者が混乱することなく文字列操作を学習できるよう、文字列操作でできること・必要となる前提知識・覚えておくべき便利なメソッドを紹介します。

時間をかけても良いので、ぜひしっかりマスターしてくださいね。

Pythonのプログラミング学習に不安を感じている方へ

AIやデータサイエンスを学びたくてPythonを学び始めたけど
「独学ではやっぱり限界がある」
と不安を感じた方にオススメしたいのが、Aidemy Premium Plan
AIに関する幅広い種類の講座徹底したコーチング指導が特徴です!

実務を見据えてPythonをがっつり学習していきたい方は、まずは無料の「オンライン相談」に参加してみてください。

また、Aidemy Premium Planのメリットやデメリットなどについては、以下の記事も参考にしてください。
Aidemy(アイデミー)の評判と口コミまとめ!受講したほうがいい理由を紹介

Pythonの文字列操作でできること

この記事でできるようになるPythonの文字列操作を紹介します。

  • 文字列から要素を取り出す
  • 文字列に指定した文字列が入っているかを判定する
  • アルファベットの大文字化・小文字化
  • 文字列が大文字か小文字かを判定
  • 文字列のリストを1つの文字列にする
  • 文字列を分割してリストにする
  • アルファベットか数字かを判定
  • 最初・最後の文字を指定して満たされているか判定

これらは文字列操作で欠かせない操作なので、しっかり学習しましょう!

Pythonの文字列操作の前提知識(エスケープ文字・raw文字列)

Pythonで文字列操作を行う前に、知っておきたい知識を説明します。

エスケープ文字

次のようにPythonに入力をすると、

message = ‘It’s mine.’

It’sの「’」が文字列の終わりのシングルクォートだと認識されてしまいます。

これは、我々が認識している英語の「’」とPythonのプログラムにおける「’」の違いをコンピュータが見分けられないためです。

Pythonでは、「’」を入力したい場合は「\’」と入力します。
[code language=”python”]message = ‘It\’s mine.'[/code]

このように、普通に入力すると勘違いされてしまう文字の代わりに入力する文字を「エスケープ文字」といいます。

以下に代表的なエスケープ文字を紹介します。

エスケープ文字 表すもの
\’
\”
\\ \
\t (タブ)
\n (改行)

raw文字列

‘(文字列)’の前にrを付け加えるとraw文字列になります。

raw文字列では、「\」を「\」のまま扱います
[code language=”python”]message = r’It\’s mine.’
# ‘It\’s mine.’を表す[/code]

それゆえエスケープ文字は認識されません

raw文字列は、「\」を多く使う正規表現でよく使われます

正規表現について詳しくない方は、以下の記事をお読みください。

【Python初心者】正規表現を分かりやすく説明!reモジュールを用いた操作

Pythonでの文字列操作【基本編】(文字列をリスト風に扱う)

Pythonでは、文字列をリスト風に扱うことができます

それゆえ、リストの機能であるスライスやin演算子・not in演算子も使うことができます。

リストや演算子について馴染みがない方は、次の記事を参考にしてみてください。

【Python初心者】リストの使い方|基本からメソッド・リスト内包表現まで
【Python初心者】演算子の種類まとめ(算術・比較・ブール)

文字列でインデックス指定・スライス指定を使う

‘creive’という文字列から○番目の文字を取り出したいという時に、順番を指定することで取り出すことができます。

○番目というのをPythonではインデックスといいますが、最初の文字は0番目となるので注意が必要です。

[code language=”python”]name = ‘creive’ #リストの定義
name[1] #’r’を表す[/code]

インデックス番号は0から始まるので、

インデックス 0 1 2 3 4 5
c r e i v e

のような対応になります。

インデックスで要素を指定した場合は要素を1つ取り出すことができましたが、スライスで指定すると複数の値を取り出すことができます。

スライスは[a:b]とすることで指定できます。
これはa以上b未満のインデックスを指定することを意味します。

[code language=”python”]name = ‘creive’ # リストの定義
name[1:3] # ‘re’を表す
name[0:4] # ‘crei’を表す[/code]

また[a:]はa以上、[:b]はb未満、[:]はすべてのインデックスを指定することを意味します。

[code language=”python”]name[2:] # ‘eive’を表す
name[:2] # ‘cr’を表す
name[:] # ‘creive’を表す[/code]

文字列でin演算子・not in演算子を使う

in演算子・not in演算子を使うことで、ある文字列が指定した文字列に含まれているかをTrue・Falseで返します

[code language=”python”]’a’ in ‘creive’ # False
‘a’ not in ‘creive’ # True[/code]

Pythonでの文字列操作【発展編】(メソッドを使う)

Pythonでは、文字列に関する複雑な処理を簡単に行えるように、便利なメソッドがあらかじめ用意されています。

ここではメソッドとその機能を実例とともにご紹介します。

アルファベットの大文字化・小文字化|upper()・lower()

upper()メソッドを用いることでアルファベットの大文字化、lower()メソッドを用いることでアルファベットの小文字化ができます。

[code language=”python”]a = ‘creive’.upper()
print(a) # CREIVE

b = ‘CREIVE’.lower()
print(b) # creive[/code]

文字列が大文字か小文字かを判定|isupper()・islower()

isupper()メソッドを用いることで文字列が大文字かを判定、islower()メソッドを用いることで文字列が小文字かを判定することができます。

[code language=”python”]’CREIVE’.isupper() # True
‘CREIVE’.islower() # False[/code]

文字列のリストを1つの文字列にする|join()

join()メソッドを用いることでリストの要素を1つの文字列に連結させることができます。

[code language=”python”]a = [‘I’, ‘am’, ‘a’, ‘cat’]
‘ ‘.join(a) # 空白を要素の区切り字にする
# ‘I am a cat'[/code]

文字列を分割してリストにする|split()

split()メソッドはjoin()メソッドとは逆に、1つの文字列を分割してリストにすることができます。
[code language=”python”]animals = ‘dog,cat,elephant’
animals.split(‘,’) # ,で区切る
# [‘dog’, ‘cat’, ‘elephant’]
[/code]

split()メソッドについては、以下の記事で詳しく説明しています。
【Python初心者】split()メソッドの使い方|文字列操作の第一歩

アルファベットか数字かを判定|isalpha()・isalnum()・isdecimal()

isalpha()メソッドを用いることでアルファベットかを判定、isalnum()メソッドを用いることでアルファベットまたは数字かを判定、isdecimal()メソッドを用いることで数字かを判定することができます。
[code language=”python”]’abcdef’.isalpha() # True
‘abcdef123456’.isalnum() # True
‘abcdef’.isdecimal() # False[/code]

最初・最後の文字を指定して満たされているか判定|startswith()・endswith()

startswith()メソッドを用いることで最初の文字、endswith()メソッドを用いることで最後の文字が、指定した文字列と一致するかを判定することができます。

[code language=”python”]’0312345678′.startswith(’03’) # True
‘0312345678’.endswith(’03’) # False[/code]

最後に:Pythonの文字列操作を使いこなそう!

Pythonでは、日々の業務を自動化したりデータ分析したりするプログラムがたくさんかけます。

テキストどちらもテキストデータを扱うことは非常に多いので、ぜひこの記事を読んでマスターしましょう!