Python で文字列を比較する

Manav Narula 2023年1月30日
  1. Python で文字列を比較するためにリレーショナル演算子を使用する
  2. Python で文字列を比較するには is 演算子を使用する
  3. Python で文字列を比較するためにユーザー定義のロジックを使用する
  4. Python で文字列を比較するために正規表現を使用する
Python で文字列を比較する

このチュートリアルでは、Python で文字列を比較する方法を紹介します。

Python で文字列を比較するためにリレーショナル演算子を使用する

Python では、異なる値を比較するために関係演算子を使用します。文字列はこれらの演算子を使って比較することができます。文字列を比較するときは、Unicode の値を比較します。

以下のコードでは、リレーショナル演算子を使用して 2つの文字列を比較し、その結果を出力します。

str1 = "Mark"
str2 = "Jack"

print(str1 > str2)
print(str1 < str2)
print(str1 == str2)
print(str1 != str2)
print(str1 >= str2)
print(str1 <= str2)

出力:

True
False
False
True
True
False

Python での文字列比較は大文字と小文字を区別します。大文字小文字を区別しない方法で文字列比較を行いたい場合は、islower() 関数を使うことができます。

Python で文字列を比較するには is 演算子を使用する

Python では is 演算子を使って同一性の比較をチェックします。これは、2つの変数が同じメモリ位置にあれば、その同一性は同じとみなされ、比較の結果は True であり、そうでなければ False となります。is 演算子は == 関係演算子とは異なります。例えば、

str1 = "Mark"
str2 = str1
str3 = "MARK"
print(str1 is str2)
print(str1 is str3)

出力:

True
False 

Python で文字列を比較するためにユーザー定義のロジックを使用する

これらの組み込み演算子の他に、文字列を長さなどの他の要素で比較するためのユーザー定義関数を作成することができます。

次のコードでは、2つの文字列の長さを比較するユーザー定義関数を実装しています。

def check_len(s1, s2):
    a = len(s1)
    b = len(s2)
    if a > b:
        print(s1, " is Longer")
    elif a == b:
        print("Equal Length")
    else:
        print(s2, " is Longer")


str1 = "Mark"
str2 = "Jack"
check_len(str1, str2)

出力:

Equal Length

Python で文字列を比較するために正規表現を使用する

正規表現は Python で非常に多用されており、文字列がパターンと一致するかどうかをチェックするために使用することができます。

次の例では、正規表現を使って 2つの文字列とパターンを比較します。

import re

str1 = "Mark"
str2 = "Jack"


def check_pattern(s):
    if re.match("Ma[a-z]+", s):
        print("Pass")
    else:
        print("Fail")


check_pattern(str1)
check_pattern(str2)

出力:

True
False

上の re パターンは、文字列が Ma で始まり、他の文字が続くかどうかをチェックしています。これが Mark が True を返し、ack が False を返す理由です。

著者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

関連記事 - Python String