什么是key = lambda
在使用一些内置函数(如sorted,sum)时,我注意到 key=lambda
什么是lambda?它是如何工作的?
还有哪些其他功能使用key = lambda?
还有其他关键值吗? key=?
回答:
Alambda
是一个匿名函数:
>>> f = lambda: 'foo'>>> print f()
foo
它经常用在诸如以sorted()
callable作为参数(通常是key
关键字形参)的函数中。您可以提供一个现有的函数,而不是lambda
那里的函数,只要它是一个可调用的对象即可。
以sorted()
功能为例。它将以排序顺序返回给定的iterable:
>>> sorted(['Some', 'words', 'sort', 'differently'])['Some', 'differently', 'sort', 'words']
但这会将大写单词排在小写单词之前。使用key
关键字,您可以更改每个条目,以便对其进行不同的排序。我们可以在排序之前将所有单词都小写,例如:
>>> def lowercased(word): return word.lower()...
>>> lowercased('Some')
'some'
>>> sorted(['Some', 'words', 'sort', 'differently'], key=lowercased)
['differently', 'Some', 'sort', 'words']
为此,我们必须创建一个单独的函数,无法将def lowercased()
行内联到sorted()
表达式中:
>>> sorted(['Some', 'words', 'sort', 'differently'], key=def lowercased(word): return word.lower()) File "<stdin>", line 1
sorted(['Some', 'words', 'sort', 'differently'], key=def lowercased(word): return word.lower())
^
SyntaxError: invalid syntax
甲lambda
在另一方面,可以直接指定,内嵌在sorted()
表达式:
>>> sorted(['Some', 'words', 'sort', 'differently'], key=lambda word: word.lower())['differently', 'Some', 'sort', 'words']
Lambda仅限于一个表达式,其结果是返回值。
Python库中有很多地方,包括内置函数,这些地方都带有可调用的关键字或位置参数。这里要说的太多了,它们通常扮演着不同的角色。
以上是 什么是key = lambda 的全部内容, 来源链接: utcz.com/qa/433168.html