2012-03-05 6 views
2

Pythonにはschemeのapplyと同等の機能がありますか?私は、Pythonのreduceが2つの引数の関数に作用し、それを再帰的に適用することに気付きました。これは非常に異なります。Schemeに相当するPython適用

私自身で書きますか?いくつかのモジュールがありますか?

+2

実際に必要な機能について教えてください。私たち全員が制度を知っているわけではありません。 – delnan

+0

@delnan http://en.wikipedia.org/wiki/Apply – Pubby

答えて

5

Schemeの適用と同等のPythonは、引数に*および/または**の接頭辞を使用することです。例えば

>>> my_list = [1, 2] 
>>> operator.add(*my_list) 
3 

*接頭辞が位置引数の配列に使用され、**プレフィックスがキーワード引数の辞書で使用されます。

+0

すごい!どうもありがとう! – BlackSheep

2

(Laurenceの引数で示されているように)引数をアンパックすることは、あなたが望むことを行うための適切な方法です(すなわち、最良のPythonスタイルと見なされます)。 Schemeのapplyは技術的にはPythonのapplyですが、現在は非推奨です。

+0

私は 'apply'について言及していませんでした。なぜなら、実際には長い間非難されていたからです:http://www.python.org/dev/peps/pep-0290/#re​​place-apply-with-a-direct-function- –

+0

彼は単に 'apply()'関数を探していたら、それを見つけたでしょう(ドキュメンテーションは新しい改良された方法を指摘していたはずです)。 – kindall

+0

おそらく、彼はPython 3を使用しています。これはもはや 'apply'関数を持っていません。 –