这相当不错,但是我正在尝试学习/理解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
问:有没有一种方法可以使用map或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]
...
PS:我知道如何使用if,循环和/或生成器天真地做到这一点,但是我想学习如何使用功能性工具来实现这一点。是否只是在maptest中添加if语句或在maptest内部将其他过滤器映射应用于bar的情况?