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