sorted() 函數提供了一種根據特定條件對清單重新排序的通用方法。 key 參數讓我們可以使用自訂邏輯進行排序,並利用匿名 lambda 函數。
Lambda 函數是使用 lambda 關鍵字定義的簡潔內聯函數。一般語法是:
lambda input_variable(s): expression
它們接受輸入變數並執行表達式指定的操作。
在sorted() 的上下文中, key 參數採用一個可調用函數來處理每個列表元素並產生一個用於排序的值。定義此函數最常見的方法是使用 lambda。語法:
sorted(list, key=lambda element: expression)
例如:
sorted([1, 3, 2], key=lambda x: x % 2)
lambda 函數計算每個元素除以2 時的餘數,本質上為列表返回[0, 1, 0] [1, 3,2]。然後使用這個轉換後的列表進行排序,得到 [1, 3, 2]。
key 參數根據值將原始列表轉換為新列表由 lambda 函數傳回。讓我們舉例:
範例:
sorted([3, 6, 3, 2, 4, 8, 23], key=lambda x: x % 2)
Lambda 函數:
lambda x: x % 2
列表:
[3, 6, 3, 2, 4, 8, 23]
轉換列表:
[0, 1, 0, 1, 1, 1, 0] # 0 indicates odd, 1 indicates even
排序列表:
[3, 3, 23, 6, 2, 4, 8] # Odd numbers first, then even numbers直覺鍵轉換轉換後的列表本質上是一個掩碼,它揭示了我們想要排序的屬性,在本例中為奇數/偶數。 Sorted() 然後使用轉換值的順序對原始列表進行排序,從而得到所需的排序順序。 使用 Lambda 進行複雜排序lambda 函數的多功能性允許複雜的排序場景。例如,以下 lambda 函數根據第二個元素對元組列表進行排序:
sorted([(3, 5, 8), (6, 2, 8), (2, 9, 4), (6, 8, 5)], key=lambda x: x[1])結果是根據每個元組的第二個元素排序的列表。 透過理解Sorted() 鍵參數中的 lambda 函數背後的語法和概念,您可以針對各種場景有效地自訂排序邏輯。
以上是如何在 Python 中使用「sorted()」函數的「key」參數中的 lambda 函數來自訂排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!