Я забыл фактически вызвать функцию фильтра! Исправленный код будет:
results = set([v for v in ['test'] if my_filter(v)])
^^^
difference here
Для каждого элемента v
в списке я хотел проверить достоверность my_filter(v)
, которая будет False
. Вместо этого я проверял правдивость my_filter
, что всегда верно, поэтому все предметы были возвращены.
Я думаю, что перепутал синтаксис понимания списка с функцией filter
:
results = set(filter(my_filter, ['test']))