我有一个对象列表,我想删除除一个以外的所有空对象,使用 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
)