何时以及为什么将Lambda函数映射到列表

皇帝尼禄

我正在为Data Science训练营准备一个预备课程,它遍历了Lambda关键字,Map并且Filter在该课程的早期就开始起作用了。它为您提供语法以及如何使用它,但是我在寻找为什么和何时使用上下文。以下是其解决方案的示例:

def error_line_traces(x_values, y_values, m, b):
    return list(map(lambda x_value: error_line_trace(x_values, y_values, m, b, x_value), x_values))

我感觉好像每次我将他们的解决方案都交给实验室时一样,我已经将单行return解决方案变成了多部分功能。是这种风格还是我应该做的事情?

wjandrea

就个人而言,一张lambda的地图使我感到恶心。只需使用生成器表达式而且一个lambda映射的列表甚至更糟,因为它可能是列表理解

def error_line_traces(x_values, y_values, m, b):
    return [error_line_trace(x_values, y_values, m, b, x) for x in x_values]

看那是多少更短更清晰!

lambda的过滤器也可以重写为一种理解。例如:

list(filter(lambda x: x>5, range(10)))
[x for x in range(10) if x>5]

这就是说,有良好的用途lambdamapfilter,但通常不结合。list(map(...))根据上下文,Even也可以,例如将字符串列表转换为整数列表:

[int(x) for x in list_of_strings]
list(map(int, list_of_strings))

这些内容既清晰又简洁,因此实际上唯一需要考虑的是阅读您的代码的人是否会熟悉map

一旦你过去的训练营,请记住,mapfilter迭代器,并做懒的评价,因此,如果你只遍历他们,而不是建立一个列表,他们是出于性能方面的实际优选但发电机执行一样好。


顺便说一句,次要更正:lambda是关键字,而不是函数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

角4:在构造函数中何时以及为什么使用@Inject?

为什么以及何时需要在React中绑定函数和eventHandler?

将函数的参数声明为final:为什么以及何时需要它?

Java泛型-将函数映射到列表

为什么JNA无法将char **映射到String []?

模块:何时以及为什么?

为什么以及何时使用Liquibase?

为什么以及何时使用Django mark_safe()函数

将函数列表映射到参数列表(Python)

python将lambda函数映射到列表

将函数映射到向量

解释器何时以及为什么通过假定相同长度的子列表来解散?

列表,系列,字典,数据框-何时使用以及为什么使用?

将列表映射到python中的列表

映射到Lambda函数中的对象JavaScript-为什么没有parens不能工作?

我为什么以及何时要在Lua中使用os.exit()函数的参数“代码”

为什么以及何时需要双指针?

为什么以及何时继承Collection <T>

为什么高斯径向基函数将示例映射到无限维空间中?

R函数将列表映射到列表列表

为什么以及何时执行重载构造函数?

将append函数映射到列表

将函数映射到列表列表并将结果连接到列表中

将函数映射到列表中字典的值

通过某个键将<Long, List<String>> 映射到字符串 Lambda 列表

根据 lambda 函数将 NumPy 整数列表值映射到列表

如果函数是异步的,如何将函数结果映射到列表?

将一元函数映射到列表 - 为什么不总是需要`each`?

将元素映射到 Haskell 中的函数列表