List comprehensions.は、彼らは次のようになり:
F(x)は、いくつかの関数であり、バーはシーケンスである
a = [f(x) for x in bar]
。
あなたのような構築物で部分的に適用される関数としてF(X)を定義することができます。
def foo(x):
return lambda f: f*x
xでパラメータを乗算機能を返しますどの。私はしかし、かなり難解なケースではコンストラクトのこの種を使用して想像していませんが
>>> def foo (x):
... return lambda f: f*x
...
>>> a=[1,2,3]
>>> fn_foo = foo(5)
>>> [fn_foo (y) for y in a]
[5, 10, 15]
:リスト内包に用いた構築物のこのタイプの簡単な例は次のようになります。 Pythonは真の関数型言語ではないので、高水準関数を使って巧妙なやり方をするのは、(例えば)Haskellよりも少ない。あなたはこのタイプの構造のためのアプリケーションを見つけるかもしれませんが、実際にその pythonicではありません。
>>> y=5
>>> a=[1,2,3]
>>> [x*y for x in a]
[5, 10, 15]
foo(x、anotherVar)? –
ありがとう、これはかなり良い構文です。 –
Mykola:あなたが望むものによって、私はy = 4と言うでしょう。 a = [f(x、y)for x in bar]またはa = [f(x、y)for x、y in zip(bar、baz)]。 izipも参照してください。 –