在Python中,`sorted()`函数用于对可迭代对象进行排序,并返回一个新的排序后的列表,而不改变原始对象。以下是`sorted()`函数的基本用法:
```python
sorted(iterable, key=None, reverse=False)
`iterable`:要排序的可迭代对象,如列表、元组、字符串等。
`key`:可选参数,用于指定排序规则。可以是一个函数或`lambda`表达式,用于提取元素的特定值进行排序。
`reverse`:可选参数,表示是否进行反向排序,默认为`False`,表示升序排序。
示例
对列表进行排序
```python
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers) 输出:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
对字符串进行排序
```python
text = "python"
sorted_text = sorted(text)
print(sorted_text) 输出:['h', 'n', 'o', 'p', 't', 'y']
使用`key`参数进行自定义排序
```python
students = [
{"name": "Alice", "age": 20},
{"name": "Bob", "age": 18},
{"name": "Charlie", "age": 22}
]
sorted_students = sorted(students, key=lambda x: x["age"])
print(sorted_students) 输出:[{'name': 'Bob', 'age': 18}, {'name': 'Alice', 'age': 20}, {'name': 'Charlie', 'age': 22}]
对字典按键或值排序
```python
ages = {
"Alice": 25,
"Bob": 20,
"Charlie": 30
}
按键排序
sorted_ages = sorted(ages)
print(sorted_ages) 输出:['Alice', 'Bob', 'Charlie']
按值排序
sorted_ages = sorted(ages.items(), key=lambda x: x)
print(sorted_ages) 输出:[('Bob', 20), ('Alice', 25), ('Charlie', 30)]
对集合进行排序
```python
a = {1, 5, 3, 2, 4}
sorted_a = sorted(a)
print(sorted_a) 输出:[1, 2, 3, 4, 5]
```python
a = [20, 30, -1.2, 3.5, 90, 3.6]
sorted_a = sorted(a, reverse=True)
print(sorted_a) 输出:[90, 30, 20, 3.6, 3.5, -1.2]
使用`key`参数忽略字符串大小写
```python
b = ["fkit", "crazyit", "charlie", "fox", "Emily"]
sorted_b = sorted(b, key=str.lower)
print(sorted_b) 输出:['charlie', 'Emily', 'fox', 'fkit', 'crazyit']
`sorted()`函数非常灵活,可以用于各种数据结构的排序,并且可以通过`key`参数和`reverse`参数进行自定义排序