【脱python初心者】セイウチ演算子で代入式の繰り返しを防ぐ方法

Pythonでif文を使う際に下記のようなコードを書いたことはないでしょうか?

  • ある値を変数に置き換えてその変数にifを使う
  • ある値をifで条件確認してから変数に置き換える

すごく2度手間になっているような気がしますが,この解決策は一般的には思い浮かびません

Pythonではセイウチ演算子を使うことで,こういった代入式の繰り返しを防ぐことができます

本記事では,セイウチ演算子の基本的な使い方と様々な使用ケースの例を解説します

目次

代入式の繰り返しを防ぐセイウチ演算子とは

セイウチ演算子は形がセイウチの目と牙に似ていることからそう呼ばれています

機能は変数に値を代入する際に,2重に呼び出すことを防ぎます

Python 3.8以降でしか動作しません

リストの要素数を確認する

Pythonでリストaの要素数をifで判定する構文を考えます

python3.7までの構文

まず今までの構文です

a = [123, 65, 4, 8, 3, 9, 5, 6, 8, 14, 5]

n = len(a)
if n > 10:
    print(f'このリストの要素数は10より長いです')

python3.8以降のセイウチ演算子構文

セイウチ演算子:=を使って,if分のなかで代入を行います

a = [123, 65, 4, 8, 3, 9, 5, 6, 8, 14, 5]

if (n:= len(a)) > 10:
    print(f'このリストの要素数は10より長いです')

if文の存在確認セイウチ演算子を使う

辞書をgetで参照する際に存在しているか確認してその中身を参照する場合を考えます

python3.7までの構文

まず今までの構文です

d = {'a': 'aです', 'b': 'bです'}

m = d.get('a')
if m:
    print(m)

python3.8以降のセイウチ演算子構文

セイウチ演算子を使ってifの中でセイウチ演算子を使います

d = {'a': 'aです', 'b': 'bです'}

if m:=d.get('a'):
    print(m)

セイウチ演算子を使うタイミング

これまでの例でセイウチ演算子を使うとコードが少しスッキリすることがわかります

複雑さを減らしたり可読性を向上させる綺麗なケースで使ってみてください

参考文献

Python3.8の追加機能

お疲れ様でした

シェアしてくださると嬉しいです!
  • URLをコピーしました!

コメント

コメントする

目次