考慮這個簡單的例子
x = [1,2,3,4]
y = [1,2,2,4]
下面的代碼回傳一個元組,其中包含來自 x 和 y 的元素,按 y 串列中數字的降序排序。
sorted(zip(x,y), key = lambda x: x[1], reverse = True)
Out[10]: [(4, 4), (2, 2), (3, 2), (1, 1)]
我的問題是:您可以看到元組(2,2)和(3,2)本質上是系結的(相同的 y 值 = 2),但是必須選擇哪個將在排序串列中排在第一位。
什么是默認規則?默認情況下,Python 是否將元素保持在原始順序?
謝謝!
uj5u.com熱心網友回復:
請參閱Sorting HOWTO 中的排序穩定性和復雜排序:
排序保證是穩定的。這意味著當多個記錄具有相同的鍵時,它們的原始順序將被保留。
uj5u.com熱心網友回復:
是的,來自檔案
內置
sorted()函式保證穩定。一個排序是穩定的,如果它保證不改變比較相等的元素的相對順序——這有助于多次排序(例如,按部門排序,然后按薪級排序)。
其關鍵字是stable,如上面的引文所示:如果排序順序存在平局時保持原始順序,則排序是穩定的,并且 Python 排序保證是穩定的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/470238.html
標籤:Python
上一篇:你能幫我用烏龜圖形畫房子嗎?
