在 Python 中,sorted() 函式是用於對可迭代物件進行排序的內建函式。 它可以返回新的排序列表,而無需修改原始列表。 sorted() 函式有許多有用的引數,可用於控制排序行為。 下面我們將仔細研究 Python 中 sorted() 函式的用法。
1.基本用法
python
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_numbers = sorted(numbers)
列印(排序數字)輸出:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]。
在此示例中,我們定義了乙個整數列表並使用 sorted() 函式對它們進行排序。 sorted() 函式返回乙個新的排序元素列表。
2.排序順序
預設情況下,sorted() 函式按公升序對可迭代物件進行排序。 如果要按降序排序,可以使用 reverse 引數。
python
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_numbers = sorted(numbers, reverse=true)
列印(排序數字)輸出:[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]。
在此示例中,我們將 reverse 引數設定為 true,以使 sorted() 函式按降序對列表進行排序。
3.比較功能
預設情況下,sorted() 函式使用 less than 運算子來比較可迭代物件中的元素。 但是,您可以傳遞比較函式來指定自定義比較邏輯。 比較函式應接受兩個引數並返回乙個布林值,該值指示第乙個引數是否小於第二個引數。
例如,假設我們要按長度而不是預設字典順序對字串列表進行排序。 我們可以使用 len() 函式作為比較函式來實現這一點。
python
words = ['apple', 'banana', 'cherry', 'date']
sorted_words = sorted(words, key=len)
print(sorted words) 輸出: [.]'date', 'apple', 'cherry', 'banana']
在此示例中,我們使用 len() 函式作為 key 引數的值,指定順序按字串的長度排序。 這將導致 sorted() 函式在比較元素時使用 len() 函式的返回值,而不是預設的字典順序比較。
4.穩定的分揀
預設情況下,sorted() 函式使用穩定的排序演算法,這意味著當兩個元素相等時,它們排序後的位置與原始位置一致。 這意味著穩定的排序演算法可以處理具有重複元素的列表,並確保相等的元素保持相對順序。 這在某些情況下可能很有用,例如在處理包含重複分數的學生成績列表時。
請注意,在使用比較函式時,必須確保比較函式的返回值對於相等的元素是穩定的,以保持穩定的排序屬性。 如果比較函式返回相等元素的不穩定結果,則排序結果將不再穩定。
sorted() 函式是 Python 中乙個非常有用的功能,可以幫助我們方便地對可迭代物件進行排序。 通過了解其用法和引數,我們可以更好地控制排序行為以滿足特定需求。