Pythonでインラインif文を使いこなす

Pythonプログラミングにおいて、`if`文は条件分岐を行う際に一般的に使用されます。しかし、よりコンパクトな形で条件分岐を書きたい場面もありますよね。そんな時に便利なのがインラインif文です。この記事では、インラインif文の基本的な書き方から、具体的な使用例、さらには高度な応用例までを詳しく解説していきます。

目次

インラインif文の基本

インラインif文(三項演算子とも呼ばれる)は以下のような形で書きます。

x = 10
y = '偶数' if x % 2 == 0 else '奇数'  # インラインif文

このコードでは、`x`が偶数であれば`y`に”偶数”という文字列が、奇数であれば”奇数”という文字列が代入されます。

使用場面

インラインif文は主に以下のような場面で使用されます。

– コードを短縮したい場合
– lambda関数内での条件分岐が必要な場合
– リスト内包表記での条件分岐が必要な場合

具体的な使用例

以下はインラインif文の具体的な使用例です。

文字列のフォーマット

例えば、数値が10以上かそれ以下かで文字列のフォーマットを変えたい場合。

num = 11
result = f"{num}は{'10以上' if num >= 10 else '10未満'}です。"
print(result)  # 出力: 11は10以上です。

リストのフィルタリング

リスト内包表記と併用して、特定の条件を満たす要素だけを取得。

original_list = [1, 2, 3, 4, 5]
filtered_list = [x for x in original_list if x % 2 == 0]  # 偶数だけ取得
print(filtered_list)  # 出力: [2, 4]

高度な応用例

多重インラインif文

条件が複数ある場合でも、インラインif文は使えます。

x = 10
y = '負' if x < 0 else ('ゼロ' if x == 0 else '正')
print(y)  # 出力: 正

計算と組み合わせ

計算式内での使用も可能です。

result = (10 if x > 0 else -10) * 5  # 50 or -50
print(result)  # 出力: 50

関数内での使用

lambda関数や通常の関数内でも使えます。

is_even = lambda x: True if x % 2 == 0 else False
print(is_even(10))  # 出力: True

まとめ

インラインif文は、コードを簡潔に書く際や特定のシチュエーションで非常に便利です。ただし、条件が複雑になると読みにくくなる場合もあるので、適切なバランスを見つけることが重要です。

コメント

コメントする

目次