検索
連載

[解決!Python]文字列の大文字/小文字を変換するには(lower/upper/swapcase/caplitalize/titleメソッド)解決!Python

Pythonには文字列中の大文字/小文字を変換するための便利なメソッドがある。それらの使い方を紹介する。

PC用表示 関連情報
Share
Tweet
LINE
Hatena
「解決!Python」のインデックス

連載目次

# 文字列を小文字化/大文字化/大文字小文字の反転
s1 = 'Foo Bar Baz'
s2 = s1.lower()  # 文字列を小文字化
print(s2)  # foo bar baz
s2 = s1.upper()  # 文字列を大文字化
print(s2)  # FOO BAR BAZ
s2 = s1.swapcase()  # 文字列の大文字/小文字を入れ替える
print(s2)  # fOO bAR bAZ

# 文字列先頭を大文字に
s1 = 'hey! this is a SAMPLE string. how are you?'
s2 = s1.capitalize()  # 文字列の先頭を大文字に、残りを小文字に
print(s2)  # Hey! this is a sample string. how are you?

# 単語の先頭を大文字に、残りを小文字に
s1 = 'foo BAR baz'
s2 = s1.title()  
print(s2)  # Foo Bar Baz


文字列を小文字化/大文字化/大文字小文字の反転

 文字列を全て小文字にするにはlowerメソッドを、全て大文字にするにはupperメソッドを、元の文字列の大文字/小文字を反転するにはswapcaseメソッドを使用する(アルファベットのように大文字/小文字の概念がある文字が対象)。なお、これらのメソッドに限らず、本稿で取り上げるメソッドは全て大文字/小文字を変換した新しい文字列を戻り値とすることには注意しよう。

 以下に例を示す。

s1 = 'Foo Bar Baz'
s2 = s1.lower()  # 文字列を小文字化
print(s1)  # Foo Bar Baz
print(s2)  # foo bar baz

s2 = s1.upper()  # 文字列を大文字化
print(s2)  # FOO BAR BAZ

s2 = s1.swapcase()  # 文字列の大文字/小文字を入れ替える
print(s2)  # fOO bAR bAZ


 この例では、今述べた3つのメソッドを使って文字列'Foo Bar Baz'の小文字化/大文字化/小文字と大文字の反転を行っている。lowerメソッドの例に示したように、元の文字列はそのままで(文字列は変更不可能なオブジェクト)、新しく文字列が作成されている点に注意したい。

全角アルファベットの大文字/小文字について

 ここで見た3つのメソッドやこの後で紹介する他のメソッドでは、全角文字であっても変換してくれる。

s1 = 'ABC'
s2 = s1.lower()
print(s2)  # abc


 実際にそうすることはあまりないかもしれないが覚えておこう。


文字列先頭を大文字にする

 capitalizeメソッドを使うと、文字列の先頭の文字が大文字に、残りの文字は小文字に変換される。

 以下に例を示す。

s1 = 'hey! this is a SAMPLE string. how are you?'
s2 = s1.capitalize()  # 文字列の先頭を大文字に、残りを小文字に
print(s2)  # Hey! this is a sample string. how are you?


 この例では文字列'hey! this is a SAMPLE string. how are you?'でcapitalizeメソッドを呼び出している。この文字列では「SAMPLE」という部分だけが大文字で後は小文字(と記号と空白文字)だけだ。呼び出しの結果は'Hey! this is a sample string. how are you?'となっている。文字列の先頭の1文字だけが大文字に変換され、「SAMPLE」が小文字の「sample」になっている点に注意しよう。

単語の先頭を大文字に、残りを小文字に

 文字列中の英単語などの先頭を大文字に、残りを小文字にするにはtitleメソッドを使用する。このような英単語の先頭だけを大文字にして、残りを小文字にした文字並びのことを「タイトルケース」と呼ぶ(映画や歌のタイトルによく見られる文字の並び)。

 以下に例を示す。

s1 = 'foo BAR baz'
s2 = s1.title()  
print(s2)  # Foo Bar Baz


 ここでは文字列'foo BAR baz'をtitleメソッドでタイトルケースに変換している。注意すべき点としては、単語の区切りは空白文字だけとは限らないことだ。

 以下に例を示す。

s1 = "don't forget to do that"
s2 = s1.title()
print(s2)  # Don'T Forget To Do That


 この例では「don't」に含まれているシングルクオート「'」で語が区切られていると判断され、その後の「t」が「T」に変換されてしまっている。このような変換には注意する必要がある。

「解決!Python」のインデックス

解決!Python

Copyright© Digital Advantage Corp. All Rights Reserved.

[an error occurred while processing this directive]
ページトップに戻る