Pythonで文字列の大文字と小文字を変換する以下の関数について、それぞれ具体例を用いて解説します。
- 全部大文字に変換: str.upper()
- 全部小文字に変換: str.lower()
- 先頭のみ大文字に変換: str.capitalize()
- 各単語の先頭のみ大文字に変換(タイトルケース): str.title()
- 大文字と小文字を入れ替える: str.swapcase()
確認した環境
- OS: Ubuntu 16.04LTS, 20.04LTS
- Python: ver3.9.7
すべて大文字に変換
文字列を全て大文字にするには、uppder()メソッドを使います。
返り値は、大文字に変換された文字列のコピーとなります。(つまり、元の文字列は変更されない)
#大文字に変換されたコピーが返却される
>>> s = 'one two three four'
>>> s.upper()
'ONE TWO THREE FOUR'
#元の文字列は変更されません
>>> s
'one two three four'
すべて小文字に変換
文字列を全て小文字に変換するには、lower()メソッドを使います。
返り値はupper()メソッド同様に小文字に変換された文字列のコピーとなりますので、元の文字列は変更されません。
#小文字に変換されたコピーが返却される
>>> s = 'ONE TWO THREE FOUR'
>>> s.lower()
'one two three four'
#元の文字列は変更されません
>>> s
'ONE TWO THREE FOUR'
最初の文字だけを大文字に変換
最初の文字だけを大文字にするには、capitalize()メソッドを用います。
こちらも元の文字列は変更されません。
#最初の文字だけが大文字に変換されたコピーが返却される
>>> s = 'one two three four'
>>> s.capitalize()
'One two three four'
#元の文字列は変更されません
>>> s
'one two three four'
各単語の先頭の文字を大文字に変換(タイトルケース)
各単語(※)の先頭の文字を大文字に変換するには、title()メソッドを用います。
単語の途中に大文字がある場合は、小文字に変換されます。
ここでの「単語」とは、
- 単純に連続したアルファベット[a-zA-Z]の文字列を指します。
- 単語の途中にアポストロフィー’等の記号(他にも /、>、@など)がある場合は、そこで単語が区切れていると見なされます。
以下に例を示します。こちらも元の文字列は変更されません。
# 各単語の最初の文字だけが大文字に変換されたコピーが返却される
>>> s = 'one two three four'
>>> s.title()
'One Two Three Four'
# 元の文字列は変更されません
>>> s
'one two three four'
# 記号は単語の区切りと見なされます
>>> s = "one two Th'ree fo@ur"
>>> s.title()
"One Two Th'Ree Fo@Ur"
# 単語の途中の大文字は小文字に変換されます
>>> s = 'one tWo thRee foUr'
>>> s.title()
'One Two Three Four'
大文字と小文字を入れ替える
大文字と小文字を入れ替えるには、swapcase()メソッドを使います。こちらも上記同様、元の文字列は変更されません。(どのような用途で使うのかちょっと想像つきませんが・・・・)
#大文字と小文字を入れ替えた文字列のコピーが返却される
>>> s = 'One Two Three Four'
>>> s.swapcase()
'oNE tWO tHREE fOUR'
#元の文字列は変更されません
>>> s
'One Two Three Four'
まとめ
本記事では、Pythonで文字列を大文字と小文字を変換する関数についてまとめました。