lambda被认为是非常Python的语言,是Python编程中最受欢迎的功能之一。如此之多,以至于许多Python程序员都想尽可能地使用它们。
当然,lambda具有使我们的代码简洁的优势,但是在项目中过度使用它们会导致滥用,从而降低我们代码的可读性和可维护性。
在开始研究这些误用是什么之前,让我们先快速回顾一下lambda。如果您对它们非常了解,则可以跳到下一部分。
Lambda,也称为lambda函数,是匿名函数,可以接受任意数量的参数,而只有一个表达式。它们的声明由lambda关键字表示。基本语法如下。
lambda arguments: expression
Lambda最适合需要小的功能且仅使用一次的地方。lambda的一种常见用法是将其设置为内置sorted()函数中的关键参数。这是一个例子。
>>> students = [('Mike', 'M', 15), ('Mary', 'F', 14), ('David', 'M', 16)]
>>> sorted(students, key=lambda x: x[2])
[('Mary', 'F', 14), ('Mike', 'M', 15), ('David', 'M', 16)]
# The students are sorted by age
许多教程在解释lambda是什么以及可以在哪里使用lambda方面做得很好,因此,没有充分的理由在这里重复大量的讲解。
相反,本文的目的是向您展示最常见的lambda误用,以便在以下所列情况以外的其他情况下使用lambda时,您可能会正确使用它们。
1.重新发明轮子
lambdas的第一个误用是忽略了现有的内置函数。
让我们仍然以sorted()函数为例。假设我们有一个字符串列表,我们想使用它们的长度对它们进行排序。
当然,lambda函数lambda x:len(x)可以工作,但是直接使用内置的len()函数怎么样?
>>> pets = ['dog', 'turtle', 'bird', 'fish', 'kitty']
>>