如何在 Python 的 `sorted()` 函數中反轉特定鍵的排序順序?

Susan Sarandon
發布: 2024-11-02 17:38:29
原創
422 人瀏覽過

How to Reverse the Sort Order for Specific Keys in Python's `sorted()` Function?

在Python 中對具有多個鍵的列表進行排序:逆序排列

當組織具有多個條件的列表時,Python的內建排序() 函數提供了一個多功能工具。但是,它可能並不總是滿足反轉特定鍵的排序順序的要求。

理解問題

考慮一個場景,其中我們有一個元組列表包含兩個元素:

myList = [(ele1A, ele2A),(ele1B, ele2B),(ele1C, ele2C)]
登入後複製

我們可能想要使用兩個鍵對此列表進行排序:一個不區分大小寫(y[0].lower()),另一個按相反順序(y[1] )。使用以下程式碼實作前者:

sortedList = sorted(myList, key = lambda y: (y[0].lower(), y[1]))
登入後複製

但是,要反轉排序順序,我們可以加入reverse = True參數:

sortedList = sorted(myList, key = lambda y: (y[0].lower(), y[1]), reverse = True)
登入後複製

不幸的是,這會反轉排序兩個鍵的順序。

解決問題

為了滿足此要求,我們可以利用 Python 中 lambda 函數的強大功能。透過在排序關鍵字之一之前引入負號 (-),我們可以有效地反轉該特定關鍵字的排序順序。例如:

sortedList = sorted(myList, key = lambda y: (y[0].lower(), -y[1]))
登入後複製

在此程式碼中,-y[1] 反轉第二個鍵(y[1]) 的排序順序,而第一個鍵(y[0].lower( ) ) 保持升序排列,不區分大小寫。

其他範例

以下是更多具有不同排序順序組合的範例:

# Reverse both keys
sortedList = sorted(myList, key = lambda y: (-y[0].lower(), -y[1]))

# Reverse only the first key
sortedList = sorted(myList, key = lambda y: (-y[0].lower(), y[1]))
登入後複製

以上是如何在 Python 的 `sorted()` 函數中反轉特定鍵的排序順序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!