【问题标题】:What is lambda? How can you explain this sorting [duplicate]什么是拉姆达?你如何解释这种排序[重复]
【发布时间】:2019-01-03 15:13:13
【问题描述】:

请温柔,我还在学习 Python。我有一个例子,

pairs = [(1, '一'), (2, '二'), (3, '三'), (4, '四')]

pairs.sort(key=lambda 对: pair[1])

结果是

[(4, '四'), (1, '一'), (3, '三'), (2, '二')]

你能帮忙解释一下为什么是这个顺序吗?

【问题讨论】:

  • lambda 与未命名函数相同,即def f(pair): return pair[1]。在进一步冒险之前,您最好先复习一下有关 Python 初学者基础知识的大量文档和教程……
  • this发帖看看
  • 所有函数都是匿名的; def 语句只是将函数绑定到定义后的名称。 lambda 表达式是可以创建函数的表达式(而不是语句),只要函数的主体本身是单个表达式。
  • 补充已经说过的内容:您正在建立一个关于如何排序的标准。 lambda 函数返回每个元组的第二个元素。因此,您将按元组的第二个元素进行排序。

标签: python lambda


【解决方案1】:

lambda 只是声明简单函数的一种简短方式。该代码可以很容易地编写:

pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]

def key_func(pair):
    return pair[1]

pairs.sort(key=key_func)

在这种情况下,lambda 函数告诉sort 它应该如何将数组中的一个值(在这种情况下,一个没有明显排序顺序的元组)转换为一个它知道如何排序的值(一个字符串)。

【讨论】:

    猜你喜欢
    • 2011-08-28
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多