Python のリスト内包表記の条件文の正しい構文は何ですか?

Susan Sarandon
リリース: 2024-10-22 13:14:02
オリジナル
337 人が閲覧しました

What is the Correct Syntax for Conditional Statements in List Comprehensions in Python?

条件文を使用したリスト内包表記

Python では、リスト内包表記は新しいリストを生成するコンパクトな方法を提供します。ただし、これらの内包表記内で条件文を使用する場合、エラーを避けるために適切な構文に従うことが重要です。

問題: Iterable の比較

2 つの iterable があるとします。と b で、両方の反復可能オブジェクトに出現する要素を含む新しいリストを作成したいと考えています。次のコードを試みます:

<code class="python">a = ('q', 'r')
b = ('q')
print([ y if y not in b for y in a])</code>
ログイン後にコピー

構文エラー

ただし、このコードは無効な構文エラーを生成し、内包表記で使用されるラムダ関数に問題があることを示します。 .

解決策: 内包表記の並べ替え

リスト内包表記で条件文を使用するための正しい構文は、for 句の後に if 式を配置することです。私たちの場合、修正されたコードは次のようになります。

<code class="python">[y for y in a if y not in b]</code>
ログイン後にコピー

この内包表記は a を反復処理し、要素が b に存在しない場合にのみ新しいリストに要素を追加します。結果は期待どおり ['r'] を生成するはずです。

代替構文

あるいは、if-else 三項演算子を使用して、内部の条件ロジックを処理できます。リストの内包表記:

<code class="python">[y if y not in b else None for y in a]</code>
ログイン後にコピー

このコードは、b に存在しない要素が追加される新しいリストを作成しますが、他の要素は None 値を受け取ります。

以上がPython のリスト内包表記の条件文の正しい構文は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!