去年の10月にリリースされたPython3.8ですが、その中の機能にとても使いやすい機能がありました。
python3.8なので、まだまだ使える機会は少ないかもしれないですが、今後使いこなせるようにするためにもここにまとめておきます。
Pythonの公式では、通称「セイウチ演算子」と呼ばれているものです。
※勉強不足かもしれないですが、私はこれで初めて知りました。。。。
公式ドキュメントを確認
まずは公式ドキュメントを確認します。
代入式
大きな構文の一部として、変数に値を割り当てる新しい構文 := が追加されました。
サンプルコード
first_name = ['Sato', 'Tanaka', 'Suzuki', 'Yamada']
# 5文字以上なら辞書型に追加
dict = {word:n for word in first_name if (n:=len(word)) > 4}
dict
# return dict
# {'Tanaka':6, 'Suzuki':6, 'Yamada':6}
内包表記をした時などに、条件文に書いたコードをそのまま利用したい時などに有効的なようです。
所見では複雑な感じがしますが、慣れると可読性も上がっていいかもしれないです。
個人的に躓いた点
dict = {word:n for word in first_name if (n:=len(word)) > 4}
の n:=len(word)
これは括弧でくくらないとSyntaxErrorがでてしまうので注意
おわりに
どんどん便利になっていきますね。
同じことを二度書かないという英語でも二度書かないために名詞をoneやitで置き換えますが、あれと似ているなと感じました。
python3.8が使えるようになったら私もこれをどんどん使いこなしていきたいです。