リスト内包表記におけるif/else

PYTHON3 チュートリアル

リスト内包表記とは

リスト内包表記(list comprehension)は、Pythonにおいてリストを生成する簡潔な方法です。式と制御文を用いて、既存のリストから新しいリストを作ることができます。この方法はコードを短くし、読みやすくする助けとなります。

if文の基本的な使い方

リスト内包表記におけるif文は、特定の条件に基づいてリストの要素をフィルタリングするために使用されます。以下の例では、0から9までの数値のうち、偶数のみを新しいリストに含めます。

even_numbers = [x for x in range(10) if x % 2 == 0]
print(even_numbers)  # 出力: [0, 2, 4, 6, 8]

if/else文の使い方

リスト内包表記でif/elseを使用する場合、条件に応じて異なる値をリストの要素として追加します。次の例では、0から9までの数値に対して、偶数ならその数値を、奇数なら’odd’という文字列をリストに含めます。

mixed_list = [x if x % 2 == 0 else 'odd' for x in range(10)]
print(mixed_list)  # 出力: [0, 'odd', 2, 'odd', 4, 'odd', 6, 'odd', 8, 'odd']

注意点

if/elseをリスト内包表記で用いる際は、式部分にifとelseを書きますが、フィルタリングのみを目的とするif文はfor文の後ろに配置します。以下のように誤った配置をすると、構文エラーが発生します。

# 誤った使用例
incorrect_list = [x for x in range(10) if x % 2 == 0 else 'odd']  # これは構文エラーになる

複数条件の使用

複数の条件を組み合わせて使用することも可能です。例えば、以下のコードでは0から20までの数値の中で、3で割り切れるかつ偶数である数値のみをリストに含めます。

filtered_numbers = [x for x in range(21) if x % 3 == 0 if x % 2 == 0]
print(filtered_numbers)  # 出力: [0, 6, 12, 18]

このようにリスト内包表記を使いこなすことで、Pythonでのデータ処理をより効率的かつ直感的に行うことができます。

購読
通知
0 Comments
Inline Feedbacks
View all comments