首頁 > 後端開發 > Python教學 > 如何在Python中按多個屬性對清單清單進行高效率排序?

如何在Python中按多個屬性對清單清單進行高效率排序?

Barbara Streisand
發布: 2024-12-10 22:52:15
原創
205 人瀏覽過

How Can I Efficiently Sort a List of Lists by Multiple Attributes in Python?

清單中的多屬性排序

使用Python的sorted()函數和key參數,依單一屬性對清單進行排序非常簡單。然而,按多個屬性排序是一個挑戰。

問題表述:

我們如何快速地以多個屬性對清單清單進行排序,例如在原題?

解法:

有兩個在列表中進行多屬性排序的有效方法:

  1. 使用Lambda 函數作為鍵:

    s = sorted(s, key = lambda x: (x[1], x[2]))
    登入後複製

    此lambda 函數將每個sublist x 並傳回一個包含第二個和第三個元素的元組,有效地指定基於這兩個元素的排序順序屬性。

  2. **使用operator.itemgetter():

    import operator
    s = sorted(s, key = operator.itemgetter(1, 2))
    登入後複製

    operator.itemgetter()傳回一個從每個子清單中提取指定元素的函數,從而使基於多個屬性排序。

在這兩種情況下,排序順序都是由鍵函數或 itemgetter 參數中指定的屬性索引的順序決定。

附加說明:

對於就地排序,您可以使用 s.sort () 直接使用對應的鍵函數:

s.sort(key = operator.itemgetter(1, 2))
登入後複製

以上是如何在Python中按多個屬性對清單清單進行高效率排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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