当前位置: 首页 > 面试题库 >

sorted(key = lambda:…)后面的语法

郭翰墨
2023-03-14
问题内容

我不太理解该sorted()参数背后的语法:

key=lambda variable: variable[0]

是不是lambda随心所欲?为什么variable在看起来像是两次dict


问题答案:

key是一个函数,在比较它们之前将调用该函数来转换它们。传递给的参数key必须是可调用的。

使用lambda创建一个匿名函数(可调用)。在sorted可调用的情况下仅采用一个参数。Pythonlambda很简单。它只能做并真正返回一件事。

的语法lambda是单词,lambda后跟参数名称列表,然后是单个代码块。参数列表和代码块用冒号表示。这类似于在python其他构建体,以及诸如whileforif等。它们都是通常具有代码块的语句。Lambda只是带有代码块的语句的另一个实例。

我们可以将lambda与def的使用进行比较,以创建一个函数。

adder_lambda = lambda parameter1,parameter2: parameter1+parameter2
def adder_regular(parameter1, parameter2): return parameter1+parameter2

lambda只是为我们提供了一种无需分配名称的方法。这非常适合用作函数的参数。

variable 在这里使用两次是因为冒号的左侧是参数的名称,而右侧则在代码块中用于计算某些内容。



 类似资料:
  • 问题内容: 在使用一些内置函数(如sorted,sum)时,我注意到 什么是lambda?它是如何工作的? 还有哪些其他功能使用key = lambda? 还有其他关键值吗? 问题答案: A是一个匿名函数: 它经常用在诸如以callable作为参数(通常是关键字形参)的函数中。您可以提供一个现有的函数,而不是那里的函数,只要它是一个可调用的对象即可。 以功能为例。它将以排序顺序返回给定的itera

  • 排序算法 排序也是在程序中经常用到的算法。无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小。如果是数字,我们可以直接比较,但如果是字符串或者两个dict呢?直接比较数学上的大小是没有意义的,因此,比较的过程必须通过函数抽象出来。通常规定,对于两个元素x和y,如果认为x < y,则返回-1,如果认为x == y,则返回0,如果认为x > y,则返回1,这样,排序算法就不用关心具体的比较过

  • 排序算法 排序也是在程序中经常用到的算法。无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小。如果是数字,我们可以直接比较,但如果是字符串或者两个dict呢?直接比较数学上的大小是没有意义的,因此,比较的过程必须通过函数抽象出来。 Python内置的sorted()函数就可以对list进行排序: >>> sorted([36, 5, -12, 9, -21]) [-21, -12, 5,

  • 在Kotlin中设置click侦听器时,我们可以这样写: SAM转换后,我们可以写: 但我注意到kotlin也接受: 以及 我想知道这里发生了什么?我的意思是应该使用匿名类或SAM速记之类的东西来实现。这是某种中间阶段还是什么? 任何解释或链接到资源是高度赞赏的。

  • 返回一组有序的元素。 语法 (Syntax) 以下是语法。 (sorted-set setofelements) Parameters - 'setofelements'是需要排序的元素集。 Return Value - 已排序的元素集。 例子 (Example) 以下是Clojure中排序集的示例。 (ns clojure.examples.example (:gen-class)) (

  • 问题内容: 我来自OOP背景,尝试学习python。我使用的函数使用lambda表达式返回列表中具有最大类型的实例。 该函数正确地返回具有maximum类型的实例。我对以下三件事感到困惑: 该功能如何工作?它正在采取什么论点?我查看了文档,但听不懂。 max函数中关键字的用途是什么?我知道它也用于功能上下文 lambda表达式的含义?如何阅读它们?它们如何工作? 这些都是非常笨拙的概念性问题,但可