文字列

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

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

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

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

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

対象文字列の 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各単語の先頭文字を大文字にして残りを小文字に変換する
casefoldlowerより強力に大文字を小文字に変換する

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

ソースコード

上記で紹介しているソースコードについては GitHub にて公開しています。参考にしていただければと思います。

あわせて読みたい
【Python Tech】プログラミングガイド
【Python Tech】プログラミングガイド
ABOUT ME
ホッシー
ホッシー
システムエンジニア
はじめまして。当サイトをご覧いただきありがとうございます。 私は製造業のメーカーで、DX推進や業務システムの設計・開発・導入を担当しているシステムエンジニアです。これまでに転職も経験しており、以前は大手電機メーカーでシステム開発に携わっていました。

プログラミング言語はこれまでC、C++、JAVA等を扱ってきましたが、最近では特に機械学習等の分析でも注目されているPythonについてとても興味をもって取り組んでいます。これまでの経験をもとに、Pythonに興味を持つ方のお役に立てるような情報を発信していきたいと思います。どうぞよろしくお願いいたします。

※キャラクターデザイン:ゼイルン様
記事URLをコピーしました