ホームページ >バックエンド開発 >Python チュートリアル >リスト内包表記に if ステートメントを正しく配置するにはどうすればよいですか?
if ステートメントを使用したリスト内包表記の構文エラー
提供されたリスト内包表記で:
<code class="python">print([ y if y not in b for y in a])</code>
「^」記号で示される構文エラー。このエラーは、内包表記内の if ステートメントの配置が間違っていることが原因で発生します。
if 条件を含むリスト内包表記の正しい構文は次のとおりです。
<code class="python">[expression for item in iterable if condition]</code>
あなたの場合、条件は次のようになります。 for ステートメントの後に配置します:
<code class="python">print([y for y in a if y not in b])</code>
この改訂された内包表記は、a の要素を反復処理し、各要素が b に含まれないかどうかを評価し、結果のリストに条件を満たす要素のみを含めます。 。このコードの出力は、希望どおり ['r'] になります。
さらに、if-else 三項演算子を使用して、条件を満たさない要素に代替値を提供することもできます。
<code class="python">print([y if y not in b else None for y in a])</code>
「q」は a と b の両方に含まれるため、この内包表記は「r」と None を含むリストを返します。
以上がリスト内包表記に if ステートメントを正しく配置するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。