在Python中,`sorted()` 是一個內(nèi)置函數(shù),用于對可迭代對象(如列表、元組等)進行排序。這個函數(shù)會返回一個新的已排序的列表,而不會改變原始列表。默認情況下,`sorted()` 函數(shù)按照升序(從小到大)排序。如果你想按照降序(從大到小)排序,你可以通過傳遞 `reverse=True` 參數(shù)來實現(xiàn)。此外,你還可以使用 `key` 參數(shù)來指定一個函數(shù),該函數(shù)將從可迭代對象中抽取用于比較的元素。下面是一些示例:
基本用法
```python
# 創(chuàng)建一個列表
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
# 使用 sorted() 函數(shù)進行排序
sorted_numbers = sorted(numbers)
print(sorted_numbers) # 輸出:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
```
按降序排序
```python
# 使用 reverse=True 參數(shù)進行降序排序
sorted_numbers_descending = sorted(numbers, reverse=True)
print(sorted_numbers_descending) # 輸出:[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
```
使用 key 參數(shù)指定排序規(guī)則
例如,如果你想根據(jù)列表中每個元素的字符串長度來排序一個字符串列表,你可以這樣做:
```python
# 創(chuàng)建字符串列表
strings = ['apple', 'banana', 'cherry', 'date', 'elderberry']
# 使用 key 參數(shù)按照字符串長度排序
sorted_strings = sorted(strings, key=len) # key 參數(shù)設置為 len 函數(shù)來獲取字符串長度
print(sorted_strings) # 輸出:[['date', 'apple', 'cherry', 'banana', 'elderberry']] 因為 'date' 最短,然后是 'apple',依此類推。注意結果是新的列表,原始列表不受影響。如果你要改變原始列表,可以分配排序后的列表回原變量:strings = sorted_strings。然而這樣做會改變原有變量的類型(從列表變?yōu)樵M),因為元組是不可變的。因此通常我們不會這么做。如果你想要保持原有列表不變并且獲取排序后的結果,你應該使用返回的排序結果列表而不更改原變量名。在這個例子中排序是穩(wěn)定的(保留等值元素的原始順序),但這依賴于特定的實現(xiàn)和Python版本。如果你想要穩(wěn)定的排序結果,通常不需要擔心這個問題。如果你不確定,你可以查閱Python官方文檔中關于 `sorted()` 的更多信息以獲取保證。