Python で for ループと if 文を組み合わせる方法 質問する

Python で for ループと if 文を組み合わせる方法 質問する

次のように、 for ループと if ステートメントの両方を別々の行で使用する方法を知っています。

>>> a = [2,3,4,5,6,7,8,9,0]
... xyz = [0,12,4,6,242,7,9]
... for x in xyz:
...     if x in a:
...         print(x)
0,4,6,7,9

そして、次のようにステートメントが単純な場合は、リストの内包表記を使用してこれらを組み合わせることができることもわかっています。

print([x for x in xyz if x in a])

しかし、for ループといくつかの if ステートメントの組み合わせの後に発生する複雑なコマンド セット (「print x」だけではない) を示す良い例 (コピーして学習できるような例) がどこにも見つかりません。次のようなものが期待されます。

for x in xyz if x not in a:
    print(x...)

これは Python が本来動作する方法ではないのでしょうか?

ベストアンサー1

使用できますジェネレータ式このような:

gen = (x for x in xyz if x not in a)

for x in gen:
    print(x)

おすすめ記事