age 및 room_number 특성을 가진 Person 개체 목록이 있고 person.age() 및 person.room_number()가 만족 스러우면 true를 반환하는 check() 함수를 작성했다고 가정합니다. 그렇지 않으면 false를 반환합니다. .Python, 객체 목록 필터링, 특정 속성을 반환 하시겠습니까?
filter(check, list_of_people_objects)
목록을 반복하지 않고 승인 된 각 사람의 방 번호의 목록을 반환하는 방법이처럼 두 번이, 내 질문은, 그러나 check()
의 기준을 만족하는 사람 개체 목록을 반환 목록 이해력을 사용하지 않고? 필터링을 수행하지만 iterable의보다 구체적인 속성을 반환합니다.
map(lambda x: x.room_number(), filter(check, list_of_people_objects))
감사합니다. ifilter와 필터를 사용하는 데 차이가 있습니까? 나는리스트의 이해력이 (질문에 명시된대로) 작동한다는 것을 알고 있지만 itertools/map/filter를 사용하여 똑똑한 방법을 원한다. 하나의 반복만을 사용한다. D : – zhuyxn
'ifilter()'는 시퀀스 대신 generator를 반환한다. 반복 할 때까지는 아무 것도 실제로 검사되지 않습니다. –