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]
내가 어떤하지만 상당히 난해한 경우 구조의이 종류를 사용하여 생각하지 않지만. 파이썬은 진정한 기능 언어가 아니기 때문에 고차원 함수를 사용하는 영리한 기법을 하스켈 (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을 참조하십시오. –