Python 中用 lambda 进行排序
Manav Narula
2021年4月29日
在 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 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