Python 中用 lambda 进行排序

Manav Narula 2021年4月29日
Python 中用 lambda 进行排序

在 Python 中,我们提供了 sorted()sort() 函数来对列表进行排序。

这些函数使我们可以按所需顺序对列表进行排序。默认情况下,我们可以按降序或升序对列表进行排序。

我们也可以在这些函数中使用一个参数,即 key 参数。它使我们能够创建自己的排序顺序。我们可以在此参数中使用 lambda 函数,从而使我们能够创建自己的单行函数。

例如,

lst = ['id01', 'id10', 'id02', 'id12', 'id03', 'id13']
lst_sorted = sorted(lst, key=lambda x: int(x[2:]))
print(lst_sorted)

输出:

['id01', 'id02', 'id03', 'id10', 'id12', 'id13']

在上面的示例中,我们有一个 ID 列表,其中每个数字都以字母 id 开头。在 key 参数中,我们指定了 lambda 函数,该函数指定我们必须忽略前两个字符(id)并对列表进行排序。

还有其他方法可以使用 lambda 函数进行排序。

例如,

lst = [('Mark',1),('Jack',5),('Jake',7),('Sam',3)]
lst_sorted = sorted(lst, key=lambda x: x[1])
print(lst_sorted)

输出:

[('Mark', 1), ('Sam', 3), ('Jack', 5), ('Jake', 7)]

在上面的示例中,我们有一个元组列表。元组由一个名称和一个数字组成。在 lambda 函数中,我们指定要根据元组的第二个元素(即数字)进行排序的函数。

注意,我们可以使用 reverse 参数将其顺序更改为降序并将其设置为 True

Author: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相关文章 - Python Sort