如何在Python中对集合运行操作并收集结果?

Joa*_*nge 4 python lambda list

如何在Python中对集合运行操作并收集结果?

所以,如果我有一个包含100个数字的列表,我想为每个数字运行这样的函数:

Operation ( originalElement, anotherVar ) # returns new number.
Run Code Online (Sandbox Code Playgroud)

并收集结果如下:

结果=另一个清单......

我该怎么做?也许使用lambdas?

Con*_*lls 12

列表理解. 在Python中,它们看起来像:

a = [f(x) for x in bar]
Run Code Online (Sandbox Code Playgroud)

其中f(x)是某个函数,bar是序列.

您可以将f(x)定义为部分应用的函数,其构造如下:

def foo(x):
    return lambda f: f*x
Run Code Online (Sandbox Code Playgroud)

这将返回一个将参数乘以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]
Run Code Online (Sandbox Code Playgroud)

虽然我不认为在任何相当深奥的情况下使用这种构造.Python不是一种真正的函数式语言,因此与具有更高阶函数的巧妙技巧(例如)Haskell相比,它的范围较小.您可能会发现这种类型的结构的应用,但它不是真的 Python的.您可以通过以下方式实现简单的转换:

>>> y=5
>>> a=[1,2,3]
>>> [x*y for x in a]
[5, 10, 15]
Run Code Online (Sandbox Code Playgroud)