Это довольно n00bish, но я пытаюсь изучить/понять функциональное программирование на python. Следующий код:
foos = [1.0,2.0,3.0,4.0,5.0]
bars = [1,2,3]
def maptest(foo, bar):
print foo, bar
map(maptest, foos, bars)
дает:
1.0 1
2.0 2
3.0 3
4.0 None
5.0 None
Q. Есть ли способ использовать карту или любые другие функциональные инструменты в python для создания следующих без циклов и т.д.
1.0 [1,2,3]
2.0 [1,2,3]
3.0 [1,2,3]
4.0 [1,2,3]
5.0 [1,2,3]
Как примечание, как изменится реализация, если есть зависимость между foo и bar. например.
foos = [1.0,2.0,3.0,4.0,5.0]
bars = [1,2,3,4,5]
и напечатать:
1.0 [2,3,4,5]
2.0 [1,3,4,5]
3.0 [1,2,4,5]
...
P.S: Я знаю, как наивно использовать это, если, циклы и/или генераторы, но я хотел бы узнать, как добиться того же, используя функциональные инструменты. Это просто случай добавления инструкции if для maptest или применения другой карты фильтра к внутренним границам внутри maptest?