Этот вопрос помечен functional-programming
без соответствующего ответа, поэтому вот функциональное решение:
from operator import itemgetter
map(do_something_with, map(itemgetter('attr'), some_list))
Python 3 map()
использует итератор, но Python 2 создает список. Для Python 2 вместо этого используйте itertools.imap()
.
Если вы возвращаете some_list
, вы можете еще больше упростить его, используя выражение генератора и ленивую оценку:
def foo(some_list):
return (do_something_with(item.attr) for item in some_list)