if文によるリストの理解 質問する

if文によるリストの理解 質問する

2 つの反復可能オブジェクトを比較し、両方の反復可能オブジェクトに表示される項目を出力します。

>>> a = ('q', 'r')
>>> b = ('q')


# Iterate over a. If y not in b, print y.
# I want to see ['r'] printed.
>>> print([ y if y not in b for y in a])
                              ^

^しかし、 が配置されている場所で無効な構文エラーが発生します。この lamba 関数の何が問題なのでしょうか?

ベストアンサー1

順序が間違っています。ifは の後に置く必要がありますfor(三項演算子でない限りif-else)

[y for y in a if y not in b]

ただし、これは機能します:

[y if y not in b else other_value for y in a]

おすすめ記事