按降序和升序對列表進行排序
給定一個包含兩個元素的列表,目標是對列表進行排序首先根據第一個元素按降序排列,然後根據第二個元素按升序排列。
為了實現這一點,我們可以利用 sort() 方法和自訂鍵函數。這是一個解:
<code class="python">L = [['a',1], ['a',2], ['a',3], ['b',1], ['b',2], ['b',3]] L.sort(key=lambda k: (k[0], -k[1]), reverse=True)</code>
sort() 方法的關鍵參數指定一個決定排序順序的函數。在本例中,我們定義了一個 lambda 函數,它接受一個列表 k 並傳回一個元組。元組的第一個元素是列表k[0]的第一個元素,用於降序排序。第二個元素是清單第二個元素的否定 -k[1],用於升序排序。
透過先降序排序,reverse=True 保證每個清單的第一個元素('a' 或 'b') 依相反的字母順序排序。隨後,對第二個元素進行升序排序,整個清單排序為:
[['b', 1], ['b', 2], ['b', 3], ['a', 1], ['a', 2], ['a', 3]]
這有效地實現了所需的排序標準。
以上是如何依降序和升序對清單清單進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!