Re:ゼロから始める文系プログラマ

未経験がプログラミングを通して人生を変える

Pythonの新機能「パターンマッチ」を1分で解説


スポンサードリンク
 

f:id:ShotaNukumizu_1000:20220104152603p:plain

おはようございます。Shotaです。

今回の記事では、Python 3.10.0に新しく追加された「パターンマッチ」にざっくりと1分で解説します。

それでは早速、本題に入りましょう。


概要

Pythonにはオブジェクトを分解してデータを取り出す良い方法がありません。Python3.10では、Pythonにパターンマッチ構文を使ってheterogeneous data(ある変数が複数のデータ型を取りうること)がやりやすくなり、よりシンプルにコードを書けるようになりました。

Pythonのパターンマッチ

新しいパターンマッチ構文は予約語matchcaseを用います。

number = 2
match number:
    case 0:
        print("Nothing")
    case 1:
        print("Just one")
    case 2:
        print("A couple")
    case -1:
        print("One less than nothing")

▼実行結果

A couple

Pythonのパターンマッチでは、match: valueで指定した値にマッチする条件を持つcaseブロックを見つけ、その処理を実行します。

一致するcaseが見つからない場合は、パターンが_の処理が実行されます。_ワイルドカードと言います。

Pythonでパターンマッチが使えるようになり、特定の値をifelifの文構造でまとめる手間を省けるようになりました。感覚的にはJavaScriptswitchcase文と非常に似ていますね。

ただし、10+1のような式はcaseのパターンには使えません。パターンの文法は、通常のPythonの式とまったく違います。

まとめ、所感

今回の記事では、Pythonの新機能であるパターンマッチを1分で紹介しました。パターンマッチはけっこう複雑で、ここで紹介されてあるのはごく一部に過ぎません。

まだまだ新しい機能なので、仕様が十分に詰められていない部分も残っています。

しかし、非常に便利な機能が多く、これからのPythonプログラミングの重要な位置を占めるでしょう。ぜひともマスターしてください。

参考サイト

qiita.com

www.python.jp