これはかなり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]
...
PS:if、ループ、および/またはジェネレーターを使用して単純にそれを行う方法を知っていますが、機能ツールを使用して同じことを達成する方法を学びたいです。ifステートメントをmaptestに追加したり、maptest内のバーに別のフィルターマップを適用したりするだけのケースですか?