Я пытаюсь отфильтровать объект, возвращающий список определенного атрибута. Посмотрите, что я пробовал:Объект фильтра, возвращающий атрибут
class Foo:
def __init__(self,a,b):
self.a = a
self.b = b
x = Foo(1,2)
y = Foo(1,3)
z = Foo(2,4)
result = filter(lambda f: f.b if f.a == 1 else None, [x,y,z])
print(list(result))
Я ожидал, что список, как этот [2, 3]
, но он возвращает мне список foo
объектов. Есть ли способ сделать это, используя только функцию filter
? Я бы хотел, например, избегать использования map
и filter
.
Лямбда должна быть логическим выражением, вы возвращаете значение 'Foo.b' –