Python3.10から導入された新機能の一つに、match文があります。match文は、従来のif文とは異なり、条件式に対応できないという落とし穴があります。しかし、その一方で、match文はTrue/Falseのような値や、特定の値が0の場合、1の場合といった条件分岐に非常に強いとされています。

以下に、match文の基本的な使い方を示します。

value = 3.14
match value:
    case 3:
        raise Exception('失敗')
    case 3.1415:
        raise Exception('失敗')
    case x:
        assert x == 3.14
        print('成功')

この例では、match文の後に続くcase文で、値が一致するかどうかでマッチングが行われます。case x:の部分では、xという名前が値3.14に束縛されます。

また、match文はif文と同じように、for文と組み合わせて使うことが多いです。以下に、for文とmatch文を組み合わせた例を示します。

list = [1, 2, 3, 4, 5, 6, 8, 10, 11, 13, 15, 17, 19, 20, 22, 23]
list_mult2 = []
list_mult3 = []
list_others = []

for i in list:
    match i:
        case i if i % 2 == 0:
            list_mult2.append(i)
        case i if i % 3 == 0:
            list_mult3.append(i)
        case _:
            list_others.append(i)

print(list_mult2)
print(list_mult3)
print(list_others)

この例では、リストの各要素に対して、2の倍数、3の倍数、それ以外の数を判定し、それぞれのリストに追加しています。

以上が、Python3.10の新機能であるmatch文の基本的な使い方となります。この機能を理解し、適切に活用することで、よりPythonicなコードを書くことができるでしょう。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です