Pythonで文字列の大文字と小文字を変換する方法について解説します。大文字と小文字の変換メソッドはいくつかあるので目的に合わせて使い分けましょう。
Contents
文字列の大文字と小文字の変換
Pythonで文字列を扱うためのstrクラスでは、文字列の大文字と小文字を変換する各種メソッドが用意されています。
「大文字と小文字の変換」と一言で言っても、例えば「大文字→小文字の変換をしたい」「大文字と小文字を反転させたい」等の色々な求める結果があります。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
str.lowerの公式ドキュメントの記載はこちらを参照してください。
小文字を大文字に変換する upper
文字列の小文字を大文字に変換する場合には、upperメソッドを以下のように使用します。
# 小文字を大文字に変換する upper data = "Python PROJECT" print(f"元の文字列: {data}") print(f"変換後の文字列: {data.upper()}")
【実行結果】 元の文字列: Python PROJECT 変換後の文字列: PYTHON PROJECT
str.upperの公式ドキュメントの記載はこちらを参照してください。
大文字と小文字を反転する swapcase
大文字と小文字を反転する場合には、swapcaseメソッドを以下のように使用します。
# 大文字と小文字を反転する data = "Python PROJECT" print(f"元の文字列: {data}") print(f"変換後の文字列: {data.swapcase()}")
【実行結果】 元の文字列: Python PROJECT 変換後の文字列: pYTHON project
str.swapcaseの公式ドキュメントの記載はこちらを参照してください。
先頭文字を大文字にして残りを小文字に変換する capitalize
先頭文字を大文字に変換して残りを小文字に変換する場合には、capitalizeメソッドを以下のように使用します。
# 先頭文字を大文字に変換して残りを小文字に変換する data = "python project" print(f"元の文字列: {data}") print(f"変換後の文字列: {data.capitalize()}")
【実行結果】 元の文字列: python project 変換後の文字列: Python project
capitalizeメソッドでは、2単語目の先頭は大文字に変換されません。各単語の先頭を大文字にしたい場合には後述するtitleメソッドを使用してください。
str.capitalizeの公式ドキュメントの記載はこちらを参照してください。
各単語の先頭文字を大文字にして残りを小文字に変換する title
各単語の先頭文字を大文字にして残りを小文字に変換する場合には、titleメソッドを以下のように使用します。
# 各単語の先頭文字を大文字にして残りを小文字に変換する data = "python project" print(f"元の文字列: {data}") print(f"変換後の文字列: {data.title()}")
【実行結果】 元の文字列: python project 変換後の文字列: Python Project
titleメソッドでは、capitalizeメソッドと違い、2単語目の先頭も大文字に変換されていることが分かるかと思います。先頭文字だけを大文字にしたい場合はcapitalizeを使用してください。
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メソッドを用いて大文字/小文字の区別をなくしておいてから比較するとよいでしょう。
str.casefoldの公式ドキュメントの記載はこちらを参照してください。
まとめ
Pythonで文字列の大文字と小文字を変換する方法について解説しました。
Pythonの文字列であるstrクラスには大文字と小文字の変換メソッドがいくつかあり、代表的なメソッドは以下のようなものがあります。
メソッド名 | 機能概要 |
---|---|
lower | 大文字を小文字に変換する |
upper | 小文字を大文字に変換する |
swapcase | 大文字と小文字を反転する |
capitalize | 先頭文字を大文字に変換して残りを小文字に変換する |
title | 各単語の先頭文字を大文字にして残りを小文字に変換する |
casefold | lowerより強力に大文字を小文字に変換する |
上記の通り、Pythonの文字列の大文字と小文字の変換にはいくつかのメソッドがあります。目的に合わせてうまく使い分けましょう。
上記で紹介しているソースコードについてはgithubにて公開しています。参考にしていただければと思います。