sorted函数用于对数据排序
sorted(iterable[,key][,reverse])
注意:sorted函数不会修改原始列表,而是会返回新的列表
体会一下key:
这是一个函数输入:集合的每个元素返回:用于排序对比的值 1、简单排序 # 简单的升序排序sorted([5,2,3,1,4])# 简单的降序排列sorted([5,2,3,1,4], reverse=True) 2、使用key按照字符串的长度排序 fruits = ['lime', 'blueberry', 'plum', 'avocado']# 对于字符串,默认按照字母排序sorted(fruits)# 按照每个元素的长度len排序sorted(fruits, key=lambda x: len(x))# 因为key要求是一个函数,可以简写一下sorted(fruits, key=len) 3、对元组的列表进行排序 student_tuples = [ ('john', 'boy', 15), ('独特的鞋垫', 'girl', 12), ('dave', 'boy', 10)]# 按照每个元组的第三个元素:年龄进行排序sorted(student_tuples, key=lambda student: student[2]) 4、对字典列表排序 student_dicts = [ {"name": 'john', "sex": 'boy', "age": 15}, {"name": '独特的鞋垫', "sex": 'girl', "age": 12}, {"name": 'dave', "sex": 'boy', "age": 10}]sorted(student_dicts, key=lambda student: student["age"]) 5、对字典的值做排序 student_dicts = { 'john': {"sex": 'boy', "age": 15}, '独特的鞋垫': {"sex": 'girl', "age": 12}, 'dave': {"sex": 'boy', "age": 10}}# 注意,字典本身是无序的,所以只能先转成有序列表# 这样只能对字典的key排序sorted(student_dicts)# 先获取key-value的列表形式student_dicts_items = student_dicts.items()print(student_dicts_items)# 结果:dict_items([('john', {'sex': 'boy', 'age': 15}), ('独特的鞋垫', {'sex': 'girl', 'age': 12}), ('dave', {'sex': 'boy', 'age': 10})])# 取每个元素的第二个分量元素值,然后再获取年龄student_dicts_items = sorted(student_dicts_items, key=lambda x: x[1]['age'])# 别想转回字典,字典是无序的print(student_dicts_items)# 结果:[('dave', {'sex': 'boy', 'age': 10}), ('独特的鞋垫', {'sex': 'girl', 'age': 12}), ('john', {'sex': 'boy', 'age': 15})]