我正在为一个数据科学训练营准备一门课程,在课程的早期,我就复习了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
行解决方案变成了一个多部分函数。这是我的风格还是我应该做的
就我个人而言,一张lambda地图让我恶心。只需使用generator expression!而lambda的映射列表更糟糕,因为它可能是一个list comprehension
看那是多么的简短和清晰
lambda的过滤器也可以作为理解重写。例如:
这就是说,
lambda
、map
和filter
有很好的用途,但通常不能组合使用。甚至list(map(...))
也可以根据上下文而定,例如,将字符串列表转换为整数列表:这些都是清晰明了的,所以真正要考虑的是人们读你的代码是否熟悉^ {CD2>}。
一旦你通过了训练营,请记住
map
和filter
是iterators和lazy evaluation,因此如果你只是在它们上面循环,而不是构建一个列表,那么出于性能原因,它们实际上更可取,尽管生成器的性能也一样顺便说一句,次要更正:
lambda
是一个关键字,而不是一个函数相关问题 更多 >
编程相关推荐