У меня есть список объектов, и я хочу удалить все объекты, которые пусты, за исключением одного, используя выражения filter
и lambda
.
Например, если вход:
[Object(name=""), Object(name="fake_name"), Object(name="")]
... тогда выход должен быть:
[Object(name=""), Object(name="fake_name")]
Есть ли способ добавить назначение в выражение lambda
? Например:
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
)