Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
>>> ( a + b for a, b in (('a', 'b'), ('a', 'b')) )
<generator object at 0xb7bff54c>
>>> [ a + b for a, b in (('a', 'b'), ('a', 'b')) ]
['ab', 'ab']
[...]», насколько знаю, уже будет возвращать настоящие генераторы вместо списков, но пока 3.0 не сильно распространён.
x = \
# filter something out
filter(lambda a: ...,
# convert something to something else
map(lambda a: ...,
# filter other odd things
filter(someNamedFunction,
....
data_entries)))))
def notify_admins(msg):
map(lambda x: x.message_set.create(message=msg),
User.objects.filter(is_staff=True))
def handle_noargs(self, **kwargs):
map(unlink, reduce(lambda x,y: x+y, (x for x in [[join(d,f) for f in fs if f.endswith('.pyc') or f.endswith('.pyo')] for d,_,fs in walk('.')] if x)))В LC присутствует, казалось бы, похожая конструкция:
[ expression(a1, a2) for a1 in x1, for a2 in x2 ]
Но, увы, это не то же самое.
>>> [ a + b for a, b in ('a', 'b'), ('a', 'b') ]
['ab', 'ab']
Функциональное программирование для землян — списки