首页 > 编程知识 正文

调用自定义排序函数sort,sorted排序规则

时间:2023-05-05 10:57:56 阅读:196978 作者:4547

sorted函数用于对数据排序
sorted(iterable[,key][,reverse])

iterable: 必选,待排序的集合,可以是list、tuple、set、dict等reverse:可选,默认是False升序排列,如果为True则降序排列key:可选,这是一个函数,返回一个key,用于排序的比较

注意: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})]

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。