首頁 > 後端開發 > Python教學 > 如何用一個鍵對元組列表進行逆序排序?

如何用一個鍵對元組列表進行逆序排序?

Susan Sarandon
發布: 2024-10-31 16:38:02
原創
777 人瀏覽過

How to Sort a List of Tuples with One Key in Reverse Order?

使用多個鍵對列表進行排序,包括一個倒序

在處理元組列表時,我們可能會遇到需要排序的情況它們是基於多個標準,其中一個標準應該是相反的順序。本文解決了這個挑戰,提供了一種 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中文網其他相關文章!

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