Pythonのリスト内包表記は、リストやタプルなどのイテラブルから変数を取り出し、式の中で操作をしてリストに格納します。特にif文と組み合わせることで、より複雑なリストの生成が可能になります。
if文のみを使う場合
次のコードは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文を使う場合
次のコードは偶数のときは数字、奇数のときは “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")
まとめ
リスト内包表記とif文を組み合わせることで、Pythonのコードをより簡潔に書くことができます。しかし、その一方でコードの可読性を損なう可能性もあるため、適切なバランスを見つけることが重要です。.