首頁 > 後端開發 > Python教學 > 如何使用「sorted()」和 Lambda 表達式以多個欄位對 Python 清單進行排序?

如何使用「sorted()」和 Lambda 表達式以多個欄位對 Python 清單進行排序?

Mary-Kate Olsen
發布: 2024-11-25 19:28:17
原創
1076 人瀏覽過

How to Sort a Python List by Multiple Fields Using `sorted()` and Lambda Expressions?

按多個欄位對Python 列表進行排序

如果您有一個使用排序()從排序的CSV 檔案建立的列表,您可能需要按附加條件進一步對清單進行排序。若要按兩個欄位對 Python 清單進行排序,您可以使用排序()函數和 lambda 表達式的組合。

在您的情況下,您可以按欄位 1 中的值對清單 list1 進行排序,然後按欄位 1 中的值對清單 list1 進行排序。使用下列程式碼在欄位 2 中取得值:

sorted_list = sorted(list1, key=lambda x: (x[0], x[1]))
登入後複製

sorted() 中的 key 參數採用一個決定排序順序的函數。在本例中,lambda 函數傳回用於排序的值元組。元組的第一個元素是欄位 1 中的值,第二個元素是欄位 2 中的值。

要依一個欄位升序、另一個欄位降序排序,可以在 lambda 函數中使用負值。例如,若要按欄位 1 公升序和欄位 2 降序排序,請使用下列程式碼:

sorted_list = sorted(list1, key=lambda x: (x[0], -x[1]))
登入後複製

以上是如何使用「sorted()」和 Lambda 表達式以多個欄位對 Python 清單進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板