Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのcasefold()メソッドとは?文字列の小文字変換と比較方法を解説

Pythonのcasefold()は、文字列内の英字をすべて小文字に変換するためのメソッドです。lower()と似ていますが、より積極的な変換を行う点が特徴で、ドイツ語の「ß」が「ss」に変換されるなど、国際化対応において強力な働きをします。

2つの文字列に対してcasefold()を適用すれば、大文字・小文字の違いを無視して値を一致させることができます。そのため、ユーザー入力の比較や検索処理などで非常に役立ちます。

casefold()の基本的な使い方

次の例では、文字列にcasefold()を適用し、すべて小文字に変換された結果を出力しています。

コード例

string = "BestTutorials"
# 小文字に変換した文字列を出力
print("小文字に変換した文字列:", string.casefold())

実行結果

上記のコードを実行すると、以下のような結果が得られます。

小文字に変換した文字列: besttutorials

元の文字列「BestTutorials」に含まれる大文字がすべて小文字に変換され、「besttutorials」と出力されていることが確認できます。

casefold()を使った文字列の比較

casefold()を利用すると、同じ文字で構成されていても大文字・小文字が異なる2つの文字列を、同一のものとして比較できます。比較の前に両方の文字列をcasefold変換しておけば、大文字小文字の違いによる誤判定を防げます。

コード例

string1 = "Hello Tutorials"
string2 = "hello tutorials"
string3 = string1.casefold()
if string2 == string3:
    print("String2とString3は等しい")
elif string1 != string3:
    print("文字列は等しくありません")

実行結果

上記のコードを実行すると、以下のような結果が得られます。

String2とString3は等しい

この例では、「Hello Tutorials」をcasefold()で小文字化した結果(string3)と、最初から小文字である「hello tutorials」(string2)が一致しているため、「String2とString3は等しい」と表示されます。

lower()との違い

lower()も文字列を小文字に変換しますが、casefold()はさらに多くの特殊文字を変換対象とします。たとえばドイツ語の「ß」は、lower()では「ß」のままですが、casefold()では「ss」に変換されます。多言語を扱うアプリケーションで厳密な文字列比較を行いたい場合は、casefold()を使用するのが推奨されています。

  1. Pythonで文字列を逆順に反転する方法|追加メモリ不要のインプレース手法

    文字の配列が与えられたとき、追加のメモリ領域を使用せずに文字列を逆順に反転することを考えます。たとえば、入力が [H, E, L, L, O] である場合、期待される出力は [O, L, L, E, H] となります。 解法のアプローチ この問題は「Two Pointers(ツーポインタ)」と呼ばれる定番のテクニックで効率的に解けます。考え方はシンプルで、配列の両端から中央に向かって文字を交換していくだけです。 手順 2つのポインタを用意します:start = 0、end = 文字列の長さ - 1 s[start] と s[end] の文字を入れ替えます start を1つ増やし、end を

  2. 【初心者向け】Pythonのcasefold()メソッドで大文字小文字を無視した文字列比較を行う方法

    このチュートリアルでは、Pythonの文字列メソッドstr.casefold()について詳しく解説します。このメソッドは引数を一切受け取らず、戻り値として「大文字小文字を区別しない比較(ケースレス比較)」に適した文字列を返します。 casefold()とは何か? そもそも「ケースレス比較(caseless comparison)」とは何でしょうか。例えば、ドイツ語の小文字ß(エスツェット)は、ssと等価な文字として扱われます。str.casefold()メソッドを使うと、ßがssに変換されます。つまり、casefold()はすべての文字を小文字に変換するだけでなく、こうした特殊な文字の等価変換