ホームページ >バックエンド開発 >Python チュートリアル >Python のリスト内包構文で三項演算子が必要になるのはどのような場合ですか?
Python では、リスト内包により、既存のイテラブルに基づいてリストを作成する簡潔な方法が提供されます。ただし、if ステートメントを含むリストの内包表記に関して疑問が生じました。
目的は、2 つの反復可能オブジェクト a と b を比較し、両方に出現する要素のみを出力することでした。意図したコードは次のようになります:
<code class="python">print([y if y not in b for y in a])</code>
残念ながら、このコードでは構文エラーが発生しました。問題は、if-else 構造の順序にあります。 Python では、三項演算子として使用しない限り、条件ステートメントはリスト内包表記の for ループの後に来る必要があります。
正しい構文:
<code class="python">[y for y in a if y not in b]</code>
このコードは反復されます。 a の各要素 y を通して。 y が b に見つからない場合は、リストに追加されます。結果のリストには、a と b の両方に出現する要素が含まれます。
代替三項演算子の構文:
<code class="python">[y if y not in b else other_value for y in a]</code>
このコードは、三項演算子を使用して、 b で y が見つからない場合の代替値 (other_value)。このアプローチはあまり一般的ではありませんが、通常はデフォルト値が必要な場合に使用されます。
以上がPython のリスト内包構文で三項演算子が必要になるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。