如何在Python中对集合运行操作并收集结果?
如何在Python中对集合运行操作并收集结果?
因此,如果我有一个包含 100 个数字的列表,并且我想为每个数字运行这样的函数:
Operation ( originalElement, anotherVar ) # returns new number.
并像这样收集结果:
结果 = 另一个列表...
我该怎么做? 也许使用 lambda 表达式?
How to run an operation on a collection in Python and collect the results?
So if I have a list of 100 numbers, and I want to run a function like this for each of them:
Operation ( originalElement, anotherVar ) # returns new number.
and collect the result like so:
result = another list...
How do I do it? Maybe using lambdas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
另一种(有点贬值的)方法是:
def kevin(v):
返回 v*v
vals = 范围(0,100)
地图(kevin,vals)
Another (somewhat depreciated) method of doing this is:
def kevin(v):
return v*v
vals = range(0,100)
map(kevin,vals)
列表推导式,生成器表达式, 减少功能。
List comprehensions, generator expressions, reduce function.
列表推导式。 在 Python 中,它们看起来像:
其中 f(x)是某个函数,bar 是一个序列。
您可以将 f(x) 定义为部分应用函数,其结构如下:
它将返回一个将参数乘以 x 的函数。 在列表理解中使用这种类型的构造的一个简单示例如下所示:
尽管我不认为在任何相当深奥的情况下使用这种构造。 Python 不是真正的函数式语言,因此与 Haskell 相比,它使用高阶函数执行巧妙技巧的范围更小。 您可能会找到这种类型构造的应用程序,但它并不是真正的Pythonic。 您可以通过以下方式实现简单的转换:
List comprehensions. In Python they look something like:
Where f(x) is some function and bar is a sequence.
You can define f(x) as a partially applied function with a construct like:
Which will return a function that multiplies the parameter by x. A trivial example of this type of construct used in a list comprehension looks like:
Although I don't imagine using this sort of construct in any but fairly esoteric cases. Python is not a true functional language, so it has less scope to do clever tricks with higher order functions than (say) Haskell. You may find applications for this type of construct, but it's not really that pythonic. You could achieve a simple transformation with something like: