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