【Python】文字列の大文字と小文字を変換する方法

Python で文字列の大文字と小文字を変換する方法について解説します。
目次
文字列の大文字と小文字の変換
Python で文字列を扱うための str クラスでは、大文字と小文字を変換する各種メソッドが用意されています。
よく使用する大文字と小文字の変換メソッドについては、以下があります。
| メソッド名 | 機能概要 |
|---|---|
lower | 大文字を小文字に変換する |
upper | 小文字を大文字に変換する |
swapcase | 大文字と小文字を反転する |
capitalize | 先頭文字を大文字に変換して残りを小文字に変換する |
title | 各単語の先頭文字を大文字にして残りを小文字に変換する |
casefold | lower より強力に大文字を小文字に変換する |
この記事では、文字列の大文字と小文字を変換する各種方法について紹介します。
大文字を小文字に変換する lower
文字列の大文字を小文字に変換するには、lower メソッドを使用します。
# 大文字を小文字に変換する lower
data = "Python PROJECT"
print(f"元の文字列: {data}")
print(f"変換後の文字列: {data.lower()}")【実行結果】 元の文字列: Python PROJECT 変換後の文字列: python project
対象文字列の lower メソッドを呼び出すと小文字に変換した文字列を返します。
小文字を大文字に変換する upper
文字列の小文字を大文字に変換するには、upper メソッドを使用します。
# 小文字を大文字に変換する upper
data = "Python PROJECT"
print(f"元の文字列: {data}")
print(f"変換後の文字列: {data.upper()}")【実行結果】 元の文字列: Python PROJECT 変換後の文字列: PYTHON PROJECT
対象文字列の upper メソッドを呼び出すと大文字に変換した文字列を返します。
大文字と小文字を反転する swapcase
大文字と小文字を反転するには、swapcase メソッドを使用します。
# 大文字と小文字を反転する
data = "Python PROJECT"
print(f"元の文字列: {data}")
print(f"変換後の文字列: {data.swapcase()}")【実行結果】 元の文字列: Python PROJECT 変換後の文字列: pYTHON project
対象文字列の swapcase メソッドを呼び出すと大文字と小文字を反転した文字列を返します。
先頭文字を大文字にして残りを小文字に変換する capitalize
先頭文字を大文字に変換して残りを小文字に変換するには、capitalize メソッドを使用します。
# 先頭文字を大文字に変換して残りを小文字に変換する
data = "python project"
print(f"元の文字列: {data}")
print(f"変換後の文字列: {data.capitalize()}")【実行結果】 元の文字列: python project 変換後の文字列: Python project
capitalize メソッドでは、2 単語目の先頭は大文字に変換されません。各単語の先頭を大文字にしたい場合には後述する title メソッドを使用してください。
各単語の先頭文字を大文字にして残りを小文字に変換する title
各単語の先頭文字を大文字にして残りを小文字に変換するには、title メソッドを使用します。
# 各単語の先頭文字を大文字にして残りを小文字に変換する
data = "python project"
print(f"元の文字列: {data}")
print(f"変換後の文字列: {data.title()}")【実行結果】 元の文字列: python project 変換後の文字列: Python Project
title メソッドでは、capitalize メソッドと違い、2 単語目の先頭も大文字に変換します。先頭文字だけを大文字にしたい場合は、capitalize を使用してください。
lower より強力に大文字を小文字に変換する casefold
lower に似た挙動のメソッドとして casefold メソッドがあります。このメソッドは lower より強力に大文字を小文字に変換することができます。
書籍やサイトなどの casefold の例でよく見るのはドイツ語の「ß(エスツェット)」という文字です。この文字は「ss」と同じ意味を表しています。このような文字は lower で変換しても ss と変換することができませんが、casefold を用いると ss と変換することが可能です。
以下の例で見てみましょう。
# lowerより強力に大文字を小文字に変換する
data = "Fußball"
print(f"元の文字列: {data}")
print(f"変換後の文字列(casefoldの場合): {data.casefold()}")
print(f"変換後の文字列(lowerの場合): {data.lower()}")【実行結果】 元の文字列: Fußball 変換後の文字列(casefoldの場合): fussball 変換後の文字列(lowerの場合): fußball
「Fußball」はドイツ語でサッカーの事で Fuß が足、Ball がボールを意味します。
casefold メソッドでは、ß が ss に変換されていますが、lower では変換されずにそのままであることが分かります。
例のように、casefold を用いると lower より強力に大文字を小文字に変換できます。文字列比較を大文字/小文字の区別なく比較したい場合には、まず casefold メソッドを用いて大文字/小文字の区別をなくしておいてから比較するのがよいでしょう。
まとめ
Python で文字列の大文字と小文字を変換する方法について解説しました。
この記事では、代表的な以下のメソッドの使い方を紹介しています。
| メソッド名 | 機能概要 |
|---|---|
lower | 大文字を小文字に変換する |
upper | 小文字を大文字に変換する |
swapcase | 大文字と小文字を反転する |
capitalize | 先頭文字を大文字に変換して残りを小文字に変換する |
title | 各単語の先頭文字を大文字にして残りを小文字に変換する |
casefold | lowerより強力に大文字を小文字に変換する |
Python の文字列の大文字と小文字の変換にはいくつかのメソッドがありますので、目的に合わせてうまく使い分けてみてください。
上記で紹介しているソースコードについては GitHub にて公開しています。参考にしていただければと思います。







