ホームページ  >  記事  >  バックエンド開発  >  条件付きステートメントを使用したリスト内包表記の構文エラーを解決するにはどうすればよいですか?

条件付きステートメントを使用したリスト内包表記の構文エラーを解決するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-22 12:38:03565ブラウズ

How to Resolve Syntax Errors in List Comprehensions with Conditional Statements?

条件文によるリスト内包表記の構文の修正

リスト内包表記を使用して 2 つの反復可能値を比較し、表示される項目を出力しようとする場合どちらの場合も、条件ステートメントが正しく配置されていない場合、構文エラーが発生する可能性があります。

提供されたコード スニペットでは、if 条件 (y が b にない) が for ステートメントの前に記述されているためにエラーが発生します。 if 条件を含むリスト内包表記の正しい構文は、以下に示すように、for ステートメントの後に条件ステートメントを配置することです。

<code class="python">[y for y in a if y not in b]</code>

この修正されたコードは、反復可能な a および反復可能な各要素 y を正しく反復します。 b. 反復可能オブジェクトに存在しない要素のみを含めます。結果として、期待どおり ['r'] が出力されます。

あるいは、以下に示すように、if-else 三項演算子を使用して目的の結果を達成することもできます。

<code class="python">[y if y not in b else other_value for y in a]</code>

この場合、other_value は b に存在する y に対して出力されます。

以上が条件付きステートメントを使用したリスト内包表記の構文エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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