在Python中,`sorted()` 是一个内置函数,用于对可迭代对象(如列表、元组等)进行排序。这个函数会返回一个新的已排序的列表,而不会改变原始列表。默认情况下,`sorted()` 函数按照升序(从小到大)排序。如果你想按照降序(从大到小)排序,你可以通过传递 `reverse=True` 参数来实现。此外,你还可以使用 `key` 参数来指定一个函数,该函数将从可迭代对象中抽取用于比较的元素。下面是一些示例:
基本用法
```python
# 创建一个列表
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
# 使用 sorted() 函数进行排序
sorted_numbers = sorted(numbers)
print(sorted_numbers) # 输出:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
```
按降序排序
```python
# 使用 reverse=True 参数进行降序排序
sorted_numbers_descending = sorted(numbers, reverse=True)
print(sorted_numbers_descending) # 输出:[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
```
使用 key 参数指定排序规则
例如,如果你想根据列表中每个元素的字符串长度来排序一个字符串列表,你可以这样做:
```python
# 创建字符串列表
strings = ['apple', 'banana', 'cherry', 'date', 'elderberry']
# 使用 key 参数按照字符串长度排序
sorted_strings = sorted(strings, key=len) # key 参数设置为 len 函数来获取字符串长度
print(sorted_strings) # 输出:[['date', 'apple', 'cherry', 'banana', 'elderberry']] 因为 'date' 最短,然后是 'apple',依此类推。注意结果是新的列表,原始列表不受影响。如果你要改变原始列表,可以分配排序后的列表回原变量:strings = sorted_strings。然而这样做会改变原有变量的类型(从列表变为元组),因为元组是不可变的。因此通常我们不会这么做。如果你想要保持原有列表不变并且获取排序后的结果,你应该使用返回的排序结果列表而不更改原变量名。在这个例子中排序是稳定的(保留等值元素的原始顺序),但这依赖于特定的实现和Python版本。如果你想要稳定的排序结果,通常不需要担心这个问题。如果你不确定,你可以查阅Python官方文档中关于 `sorted()` 的更多信息以获取保证。