【发布时间】:2012-08-11 14:36:27
【问题描述】:
假设我有一个 Person 对象列表,其中有一个 age 和 room_number 属性,并且我编写了一个 check() 函数,它返回 True,如果 person.age() 和 person.room_number() 都令人满意,则返回 False否则。
filter(check, list_of_people_objects) 将返回满足check() 条件的 Person 对象列表
但是,我的问题是,有没有一种方法可以返回每个已批准人员的房间号列表,而无需遍历列表两次,例如不使用列表理解? 所以过滤,但返回迭代的更具体的属性。
map(lambda x: x.room_number(), filter(check, list_of_people_objects))
【问题讨论】:
标签: python map filter itertools