list comprehension

У меня есть 2 списка:

a = [1, 2, 3]
b = [1, 3]

Почему такой код не работает:

new = [x for x in a if (x in b) else '']

Ответы (1 шт):

Автор решения: user436281

Согласно синтаксическим диаграммам if-else не является частью comprehension, после for допускается только if для фильтра.

a = [1, 2, 3]
b = [1, 3]

[x if x in b else 0 for x in a]
[1, 0, 3]
→ Ссылка