##### sorted()
- `sorted( iterable, *, key=None, reverse=False )`
- 对[[py.迭代器对象|可迭代对象]]排序,返回[[py.列表|列表]]
- `iterable` 要排序的可迭代对象
- `key` 可选参数,用于指定一个函数,用于从每个元素中提取用于排序的键。默认为 None
- `reverse` 可选参数,如果为 True,则以降序排序。默认为 False
- 嵌套对象内先比较第一个值,值小的在前。如果相等就比较下一个值
```python
# iterable
numbers = [5, 2, 8, 1, 10]
result = sorted(numbers)
print(result) # 输出:[1, 2, 5, 8, 10]
# key
words = ["apple", "banana", "cherry"]
result = sorted(words, key=len)
print(result) # 输出:['apple', 'banana', 'cherry']
# reverse
result = sorted(numbers, reverse=True)
print(result) # 输出:[10, 8, 5, 2, 1]
# 先按照成绩降序排序,相同成绩的按照名字升序排序:
d1 = [{'name':'alice', 'score':38},
{'name':'bob', 'score':18},
{'name':'darl', 'score':28},
{'name':'christ', 'score':28}]
l = sorted(d1, key=lambda x:(-x['score'], x['name']))
print(l)
'''
[{'name': 'alice', 'score': 38},
{'name': 'christ', 'score': 28},
{'name': 'darl', 'score': 28},
{'name': 'bob', 'score': 18}]
'''
# 正数在前负数在后,正数从小到大,负数从大到小
# 使用lambda生成元组,元组第一个数为负数判断值,第二个数为绝对值
list1 = [7, -8, 5, 4, 0, -2, -5]
list2 = sorted(list1,key=lambda x:(x<0, abs(x)))
print(list2)
'''
[0,4,5,7,-2,-5,-8]
'''
```