使用多個鍵對列表進行排序,包括一個倒序
在處理元組列表時,我們可能會遇到需要排序的情況它們是基於多個標準,其中一個標準應該是相反的順序。本文解決了這個挑戰,提供了一種 Pythonic 方法來按兩個鍵對列表進行排序,其中一個按升序排序,另一個按降序排序。
理解問題
考慮一個元組列表,例如 myList = [(ele1A, ele2A),(ele1B, ele2B),(ele1C, ele2C)]。使用兩個鍵對此列表進行排序意味著根據每個元組的第一個和第二個元素對其進行組織。我們可以使用sorted()函數對列表進行排序,傳遞一個指定排序標準的自訂鍵函數:
<code class="python">sortedList = sorted(myList, key = lambda y: (y[0].lower(), y[1]))</code>
此程式碼以兩個鍵的升序對清單進行排序。要按降序對第一個鍵進行排序,我們可以使用以下程式碼:
<code class="python">sortedList = sorted(myList, key = lambda y: (y[0].lower(), -y[1]))</code>
但是,此程式碼會依照降序對兩個鍵進行排序。要僅按降序對第一個鍵進行排序,並按升序對第二個鍵進行排序,我們可以使用以下代碼:
<code class="python">sortedList = sorted(myList, key = lambda y: (-y[0].lower(), y[1]))</code>
此代碼按第一個鍵按相反的字母順序(降序)對元組進行排序,並且按字母順序按第二個鍵(升序)。
示例
讓我們將此排序方法應用於給定列表myList:
<code class="python">myList = [('Ele1A', 'Ele2A'), ('Ele1B', 'Ele2B'), ('Ele1C', 'Ele2C')] sortedList = sorted(myList, key = lambda y: (-y[0].lower(), y[1])) # Print the sorted list print(sortedList)</code>
輸出:
[('Ele1C', 'Ele2C'), ('Ele1B', 'Ele2B'), ('Ele1A', 'Ele2A')]
我們可以看到,列表按第一個鍵按字母順序逆序排序,按第二個鍵按字母順序排序,滿足問題的要求。
以上是如何用一個鍵對元組列表進行逆序排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!