python - 这个 lambda 函数示例如何工作?

标签 python lambda

<分区>

我正在学习 Python 中的 lambda,但我不明白这个例子中发生了什么。

谁能用简单的英语解释这里发生了什么?该示例说它是“将一个小函数作为参数传递”,但我不明白那是什么意思。

>>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
>>> pairs.sort(key=lambda pair: pair[1])
>>> pairs
[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]

最佳答案

您正在使用 lambda expression (或匿名函数),根据特定排序您的元组列表。 pair[1] 表示您正在使用每个元组(字符串)中索引位置为 1 的元素的键进行排序。使用字符串排序按字母顺序排序,这会导致您看到的输出。

如果您使用每个元组中的第一个元素作为排序 key,例如 (pair[0]),您将按递增的数字顺序排序:

>>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
>>> pairs.sort(key=lambda pair: pair[0])
>>> pairs
[(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]

关于python - 这个 lambda 函数示例如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29781862/

相关文章:

c# - 与 Entity Framework 一起使用的表达式<Func<TEntity, bool>> 嵌套

java - 使用 lambda 的嵌套过滤器

java - 了解函数运算符 : Lambda

Python 获取 'permission denied' 到 Linux 中的文件

python - Pandas 合并删除重复行

Python - 替换字符串中的非 ASCII 字符 (»)

java - 将泛型类型参数标记为 Java 8 中的功能接口(interface)

python - 在单独的 .kv (Kivy) 文件中定义的屏幕之间切换

python - tkinter:下拉菜单不可点击

具有泛型类型的 Java 8 方法引用