文字列

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

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

Pythonで文字列の大文字と小文字を変換する方法について解説します。大文字と小文字の変換メソッドはいくつかあるので目的に合わせて使い分けましょう。

文字列の大文字と小文字の変換

Pythonで文字列を扱うためのstrクラスでは、文字列の大文字と小文字を変換する各種メソッドが用意されています。

「大文字と小文字の変換」と一言で言っても、例えば「大文字→小文字の変換をしたい」「大文字と小文字を反転させたい」等の色々な求める結果があります。Pythonのstrクラスには、それらに対応するための各種メソッドが用意されています。

よく使用する大文字と小文字の変換メソッドについては以下のようなものがあります。

メソッド名機能概要
lower大文字を小文字に変換する
upper小文字を大文字に変換する
swapcase大文字と小文字を反転する
capitalize先頭文字を大文字に変換して残りを小文字に変換する
title各単語の先頭文字を大文字にして残りを小文字に変換する
casefoldlowerより強力に大文字を小文字に変換する

以降で、各メソッドの使い方を簡単な例を使って紹介します。

大文字を小文字に変換する lower

文字列の大文字を小文字に変換する場合には、lowerメソッドを以下のように使用します。

# 大文字を小文字に変換する lower
data = "Python PROJECT"
print(f"元の文字列: {data}")
print(f"変換後の文字列: {data.lower()}")
【実行結果】
元の文字列: Python PROJECT
変換後の文字列: python project

Note

str.lowerの公式ドキュメントの記載はこちらを参照してください。

小文字を大文字に変換する upper

文字列の小文字を大文字に変換する場合には、upperメソッドを以下のように使用します。

# 小文字を大文字に変換する upper
data = "Python PROJECT"
print(f"元の文字列: {data}")
print(f"変換後の文字列: {data.upper()}")
【実行結果】
元の文字列: Python PROJECT
変換後の文字列: PYTHON PROJECT

Note

str.upperの公式ドキュメントの記載はこちらを参照してください。

大文字と小文字を反転する swapcase

大文字と小文字を反転する場合には、swapcaseメソッドを以下のように使用します。

# 大文字と小文字を反転する
data = "Python PROJECT"
print(f"元の文字列: {data}")
print(f"変換後の文字列: {data.swapcase()}")
【実行結果】
元の文字列: Python PROJECT
変換後の文字列: pYTHON project

Note

str.swapcaseの公式ドキュメントの記載はこちらを参照してください。

先頭文字を大文字にして残りを小文字に変換する capitalize

先頭文字を大文字に変換して残りを小文字に変換する場合には、capitalizeメソッドを以下のように使用します。

# 先頭文字を大文字に変換して残りを小文字に変換する
data = "python project"
print(f"元の文字列: {data}")
print(f"変換後の文字列: {data.capitalize()}")
【実行結果】
元の文字列: python project
変換後の文字列: Python project

capitalizeメソッドでは、2単語目の先頭は大文字に変換されません。各単語の先頭を大文字にしたい場合には後述するtitleメソッドを使用してください。

Note

str.capitalizeの公式ドキュメントの記載はこちらを参照してください。

各単語の先頭文字を大文字にして残りを小文字に変換する title

各単語の先頭文字を大文字にして残りを小文字に変換する場合には、titleメソッドを以下のように使用します。

# 各単語の先頭文字を大文字にして残りを小文字に変換する
data = "python project"
print(f"元の文字列: {data}")
print(f"変換後の文字列: {data.title()}")
【実行結果】
元の文字列: python project
変換後の文字列: Python Project

titleメソッドでは、capitalizeメソッドと違い、2単語目の先頭も大文字に変換されていることが分かるかと思います。先頭文字だけを大文字にしたい場合はcapitalizeを使用してください。

Note

str.titleの公式ドキュメントの記載はこちらを参照してください。

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メソッドを用いて大文字/小文字の区別をなくしておいてから比較するとよいでしょう。

Note

str.casefoldの公式ドキュメントの記載はこちらを参照してください。

まとめ

Pythonで文字列の大文字と小文字を変換する方法について解説しました。

Pythonの文字列であるstrクラスには大文字と小文字の変換メソッドがいくつかあり、代表的なメソッドは以下のようなものがあります。

メソッド名機能概要
lower大文字を小文字に変換する
upper小文字を大文字に変換する
swapcase大文字と小文字を反転する
capitalize先頭文字を大文字に変換して残りを小文字に変換する
title各単語の先頭文字を大文字にして残りを小文字に変換する
casefoldlowerより強力に大文字を小文字に変換する

上記の通り、Pythonの文字列の大文字と小文字の変換にはいくつかのメソッドがあります。目的に合わせてうまく使い分けましょう。