ホームページ  >  記事  >  バックエンド開発  >  リスト内包表記に if ステートメントを正しく配置するにはどうすればよいですか?

リスト内包表記に if ステートメントを正しく配置するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-22 13:33:02774ブラウズ

How to Correctly Place an if Statement in a List Comprehension?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。