Python では、リスト内包表記により、特定の条件を適用しながら既存の反復可能オブジェクトに基づいて新しいリストを作成する簡潔な方法が提供されます。 2 つの反復可能項目を比較し、両方のリストに存在する項目のみを出力しようとすると、次のエラーが発生する可能性があります:
print([ y if y not in b for y in a])
上記のコードは、最初の反復可能 (a) を反復して項目を出力することを目的としています。 2 番目の反復可能 (b) には見つかりません。ただし、if ステートメントの配置が間違っているため、「無効な構文」というエラーが発生します。
if ステートメントを使用したリスト内包の正しい構文は、for 句を if 条件の前に置くことです。したがって、目的の結果を達成するための正しいコードは次のとおりです。
[y for y in a if y not in b]
または、2 番目の反復可能項目に見つからない項目に対して別の値を出力することが目的の場合は、if-else 三項演算子を使用できます。 :
[y if y not in b else other_value for y in a]
以上がPython リスト内包表記で if ステートメントを使用する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。