Присваивание внутри лямбда-выражения в Python

У меня есть список объектов, и я хочу удалить все пустые объекты, кроме одного , используя фильтр и лямбда-выражение .

Например, если ввод:

[Object(name=""), Object(name="fake_name"), Object(name="")]

... то вывод должен быть:

[Object(name=""), Object(name="fake_name")]

Есть ли способ добавить присваивание лямбда выражению? Например:

flag = True 
input = [Object(name=""), Object(name="fake_name"), Object(name="")] 
output = filter(
    (lambda o: [flag or bool(o.name), flag = flag and bool(o.name)][0]),
    input
)
93
задан Jeremy Banks 2 September 2013 в 04:42
поделиться