Звучит так, как будто вам нужно functools.partial
.
from functools import partial
reverse_page = partial(reverse, 'page', None)
map(reverse_page, ITERABLE)
Нужно сделать трюк, если вам нужно сопоставить:
['page1', 'page2', 'page3']
без url_conf
и page
в качестве представления.
Вы можете использовать с ним аргументы ключевых слов, но нет необходимости создавать dict
s, если вам это не нужно.
Это быстрее, чем использовать lambda
или понимание списка для нетривиальных длин iterable
, потому что reverse
и 'page'
нужно искать только один раз.
Редактировать:Если вы на самом деле не используете один аргумент снова и снова, partial
- это не то, что вам нужно, просто map
:
map(reverse, ('page', 'home'), itertools.repeat(None), ('about', None))
или вот так:
map(reverse, *zip(('page', None, 'about'), ('home', None, None)))
в зависимости от того, как была организована информация.Лямбда здесь не нужна, лямбда медленная.