Python では、リスト内包表記により、既存のイテラブルに基づいてリストを作成する簡潔な方法が提供されます。ただし、if ステートメントを含むリストの内包表記に関して疑問が生じました。
目的は、2 つの反復可能オブジェクト a と b を比較し、両方に出現する要素のみを出力することでした。意図したコードは次のようになります。
print([y if y not in b for y in a])
残念ながら、このコードでは構文エラーが発生しました。問題は、if-else 構造の順序にあります。 Python では、三項演算子として使用しない限り、条件ステートメントはリスト内包表記の for ループの後に来る必要があります。
正しい構文:
[y for y in a if y not in b]
このコードは、a の各要素 y を反復処理します。 y が b に見つからない場合は、リストに追加されます。結果のリストには、a と b の両方に現れる要素が含まれます。
代替三項演算子の構文:
[y if y not in b else other_value for y in a]
このコードは、三項演算子を使用して、y が b に見つからない場合の代替値 (other_value) を指定します。このアプローチはあまり一般的ではありませんが、通常はデフォルト値が必要な場合に使用されます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3