在Python中,`sorted()`函数用于对可迭代对象进行排序。以下是一些基本用法和示例:
基本排序
numbers = [5, 9, 1, 4, 3]
sorted_numbers = sorted(numbers)
print(sorted_numbers) 输出:[1, 3, 4, 5, 9]
自定义排序规则
words = ["apple", "fig", "banana", "date"]
sorted_words = sorted(words, key=len)
print(sorted_words) 输出:['fig', 'date', 'apple', 'banana']
排序稳定性
Python 3.5及以后版本的`sorted()`默认是稳定的,即当比较键相同时,原始顺序不会改变。
根据字符串排序
a = ["paparazzi", "yang", "maybe", "redpanda", "sylar", "fy", "ameame"]
print(sorted(a)) 默认按ASCII码排序
print(sorted(a, key=len)) 按字符串长度排序
正负数排序
list1 = [7, -8, 5, 4, 0, -2, -5]
print(sorted(list1, key=lambda x: x * -10 if x <= 0 else x)) 正数在前,负数在后
字典排序
sys = {'name': '张三', 'age': 18, 'gender': 'man'}
print(sorted(sys.keys())) 按key升序排列
print(sorted(sys.items(), key=lambda d: d)) 按key升序排列
print(sorted(sys.items(), key=lambda d: d, reverse=True)) 按key降序排列
多列排序
d1 = [{'name': 'alice', 'score': 38}, {'name': 'bob', 'score': 18}, {'name': 'darl', 'score': 28}, {'name': 'christ', 'score': 28}]
print(sorted(d1, key=lambda x: (-x['score'], x['name']))) 先按成绩降序,相同成绩按名字升序
以上示例展示了`sorted()`函数的基本用法,包括排序、自定义排序规则、稳定性、字符串排序、正负数排序、字典排序以及多列排序。您可以根据需要选择合适的参数进行排序