Pythonでif文を使う際に下記のようなコードを書いたことはないでしょうか?
- ある値を変数に置き換えてその変数にifを使う
- ある値をifで条件確認してから変数に置き換える
すごく2度手間になっているような気がしますが,この解決策は一般的には思い浮かびません
Pythonではセイウチ演算子を使うことで,こういった代入式の繰り返しを防ぐことができます
本記事では,セイウチ演算子の基本的な使い方と様々な使用ケースの例を解説します
目次
代入式の繰り返しを防ぐセイウチ演算子とは
セイウチ演算子は形がセイウチの目と牙に似ていることからそう呼ばれています
機能は変数に値を代入する際に,2重に呼び出すことを防ぎます
リストの要素数を確認する
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の追加機能
What’s New In Python 3.8
Editor, Raymond Hettinger,. This article explains the new features in Python 3.8, compared to 3.7. Python 3.8 was released on October 14, 2019. For full details…
お疲れ様でした
コメント