Pythonのリスト内包表記は、リストを生成する際に非常に便利な機能です。特に、if文と組み合わせることで、より複雑なリストを簡単に生成することが可能になります。
if文のみを使う場合
リスト内包表記の中でif文を使うと、特定の条件を満たす要素だけを新しいリストに追加することができます。例えば、以下のコードは0から9までの数値の中で偶数だけを新しいリストに追加します。
even_list = [i for i in range(10) if i % 2 == 0]
このコードは以下の通常のfor文と同等です。
even_list = []
for i in range(10):
if i % 2 == 0:
even_list.append(i)
if…else…を使う場合
if文とelse文を組み合わせることで、条件によって異なる値をリストに追加することも可能です。以下のコードは、偶数のときはその数値を、奇数のときは”odd”を新しいリストに追加します。
even_list = [i if i % 2 == 0 else "odd" for i in range(10)]
このコードは以下の通常のfor文と同等です。
even_list = []
for i in range(10):
if i % 2 == 0:
even_list.append(i)
else:
even_list.append("odd")
以上のように、Pythonのリスト内包表記とif文を組み合わせることで、効率的にリストを生成することができます。ただし、コードの可読性を保つためにも、複雑な条件や処理は通常のfor文を使うことをお勧めします。.