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

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

Barbara Streisand
Barbara Streisand原創
2024-12-10 22:52:15147瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn