if/else のリスト内包表記の条件式
Python では、if/else ステートメントを含む for ループをリストに変換できます。条件式を使用した内包表記。一般的なシナリオをもう一度見てみましょう。
if/else を使用した for ループ:
results = [] for x in xs: results.append(f(x) if x is not None else '')
ここでは、x が None でない場合に f(x) の結果を結果に追加することを目的としています。それ以外の場合は、空の文字列を追加します。
これを次のようにリスト内包表記に変換しようとすると、
[f(x) for x in xs if x is not None else '']
が発生し、SyntaxError が発生します。正しい構文は次のとおりです。
[f(x) if x is not None else '' for x in xs]
一般に、if/else を使用したリスト内包表記の構文は次のとおりです。
[f(x) if condition else g(x) for x in sequence]
ここで、f(x) と g(x) は式を表します。条件に基づいて評価されます。
上記の構文で使用される条件式、他のプログラミング言語にある三項演算子 ?: と同じ目的を果たします。例:
value = 123 print(value, 'is', 'even' if value % 2 == 0 else 'odd')
これは、値が 2 で割り切れる場合、出力は「偶数」になることを簡潔に表します。それ以外の場合は、「奇数」である必要があります。
以上がPython リスト内包表記内で if/else ロジックを効果的に使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。