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