为什么使用 Lambda 进行排序键参数?
sorted() 函数需要指定一个键参数以特定方式对元素进行排序。 Lambda 表达式尽管外观任意,但在此上下文中具有特定的用途。
Lambda 背后的直觉
- Lambda 函数通常在您需要单个函数时使用-line 函数,无需定义单独的函数。
- 它们遵循语法:lambda input_variable(s): 表达式
Lambda 如何用于排序
- sorted() 中的 Lambda 函数提供了从列表元素中提取值的说明,以指导排序过程。
- 关键参数表示:“当我们迭代列表时,使用此函数来将每个元素转换为用于排序的值。"
示例
考虑列表 [3, 6, 3, 2, 4, 8, 23] 和以下 lambda 函数:
lambda x: x % 2 == 0
- 此 lambda 检查列表中的每个元素是否为偶数 (x % 2 = = 0).
- Sorted 基于此 lambda 函数转换列表,产生 1(偶数)和 0(奇数)的序列:[0, 1, 0, 1, 1, 1, 0]
- 最终排序列表为:[3, 3, 23, 6, 2, 4, 8]
额外积分
- 即使转换后的列表包含布尔值,子列表中元素的原始顺序仍保留。
- sorted() 函数仅执行一次排序,导致偶数仍然未排序。
- Lambda 函数可以从元组等复杂元素中提取值,这有助于对包含嵌套结构的列表进行排序。
为什么变量:variable[0]
当您想要根据每个元组的第一个元素对元组列表进行排序时,请使用语法 key=lambda 变量:变量[0]。这里,variable 代表每个元组,variable[0] 代表该元组中的第一个元素。
以上是Lambda 函数如何使用'sorted()”函数增强排序?的详细内容。更多信息请关注PHP中文网其他相关文章!