当前位置: 首页 > news >正文

python中的排序函数sorted

      在python中对列表进行排序是使用很频繁的操作,一般采用sorted函数或自带的成员函数sort就可以搞定。但是,sorted函数本身功能非常强大,可以对字符串长度、字典键值进行排序。使用下面的代码,可以更进一步的学习掌握。

# 对列表进行排序(字符串采用字母顺序排序)
fruits = ["apple", "banana", "cherry", "date"]
result = sorted(fruits)
print(result)  # 输出 ['apple', 'banana', 'cherry', 'date']# 根据字符串长度进行排序
result = sorted(fruits, key=lambda x: len(x))
print(result)  # 输出 ['date', 'apple', 'banana', 'cherry']# 降序排序
result = sorted(fruits, reverse=True)
print(result)  # 输出 ['date', 'cherry', 'banana', 'apple']
# 根据字符串长度进行排序
fruits = ["apple", "banana", "cherry", "date"]
result = sorted(fruits, key=lambda x: len(x))
print(result)  # 输出 ['date', 'apple', 'banana', 'cherry']#根据字典值大小排序(python3.7以后保持了插入顺序)
scoreDict = {'张三': 33,'李四': 36,'王五': 74,'赵六': 56,'李白': 88,'王维': 98,'杜甫': 100,'王昌龄': 89,'王之涣': 97,'王羲之': 93
}
print(scoreDict)#由于items输出时是元祖对象('张三',33),因此 x[1]就能取到成绩值,x[0]取键
scoreDictSorted = sorted(scoreDict.items(), key=lambda x:x[1], reverse=True)
print(scoreDict.items())
print(scoreDictSorted)#利用emuterate输出序号,start参数可以指定开始序号
for index, (name, score) in enumerate(scoreDictSorted, start=1):print(f'第{index}名:{name}\t成绩:{score}')#python3.7以后保持了插入顺序
d=dict(scoreDictSorted)
print(d)

结果:

['apple', 'banana', 'cherry', 'date']
['date', 'apple', 'banana', 'cherry']
['date', 'cherry', 'banana', 'apple']
['date', 'apple', 'banana', 'cherry']
{'张三': 33, '李四': 36, '王五': 74, '赵六': 56, '李白': 88, '王维': 98, '杜甫': 100, '王昌龄': 89, '王之涣': 97, '王羲之': 93}
dict_items([('张三', 33), ('李四', 36), ('王五', 74), ('赵六', 56), ('李白', 88), ('王维', 98), ('杜甫', 100), ('王昌龄', 89), ('王之涣', 97), ('王羲之', 93)])
[('杜甫', 100), ('王维', 98), ('王之涣', 97), ('王羲之', 93), ('王昌龄', 89), ('李白', 88), ('王五', 74), ('赵六', 56), ('李四', 36), ('张三', 33)]
第1名:杜甫     成绩:100
第2名:王维     成绩:98
第3名:王之涣   成绩:97
第4名:王羲之   成绩:93
第5名:王昌龄   成绩:89
第6名:李白     成绩:88
第7名:王五     成绩:74
第8名:赵六     成绩:56
第9名:李四     成绩:36
第10名:张三    成绩:33
{'杜甫': 100, '王维': 98, '王之涣': 97, '王羲之': 93, '王昌龄': 89, '李白': 88, '王五': 74, '赵六': 56, '李四': 36, '张三': 33}

根据多个条件排序:

key后面返回一个元祖,先依据元祖第一个元素排序,再依据元祖第二个元素排序。

先依据数据个位数排序,再依据数据本身排序。

scores = [78, 85, 90, 73, 92,63]
sorted_scores = sorted(scores, key=lambda x: (x % 10, x))
print(sorted_scores)

结果:

[90, 92, 63, 73, 85, 78]

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【资料分析】刷题日记2
  • 系统在哪些情况下会触发缺页中断
  • 关于Java数据结构中集合的一个小知识
  • 八股文-JVM
  • Gitlab实现多项目触发式自动CICD
  • 机器学习:逻辑回归--过采样
  • 教育培训小程序开发,简单实用的入门指南
  • AI绘画与摄影新纪元:ChatGPT+Midjourney+文心一格 共绘梦幻世界
  • 机器学习与深度学习之间的区别
  • 诗文发布模板(python代码打造键盘录入诗文自动排版,MarkDown源码文本)
  • 职场 Death Note
  • 鸿蒙媒体开发系列06——输出设备与音频流管理
  • RK3568平台(网络篇)MAC地址烧录
  • 【Vmware16安装教程】
  • C++——求3个数中最大的数(分别考虑整数、双精度数、长整数的情况),用函数模板来实现。
  • [笔记] php常见简单功能及函数
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 0x05 Python数据分析,Anaconda八斩刀
  • 30秒的PHP代码片段(1)数组 - Array
  • bootstrap创建登录注册页面
  • CSS实用技巧干货
  • HTML中设置input等文本框为不可操作
  • IDEA常用插件整理
  • interface和setter,getter
  • laravel 用artisan创建自己的模板
  • Magento 1.x 中文订单打印乱码
  • spring学习第二天
  • Swift 中的尾递归和蹦床
  • vue脚手架vue-cli
  • yii2中session跨域名的问题
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 微信小程序填坑清单
  • 原生 js 实现移动端 Touch 滑动反弹
  • 正则与JS中的正则
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #pragma pack(1)
  • #知识分享#笔记#学习方法
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (12)Linux 常见的三种进程状态
  • (12)目标检测_SSD基于pytorch搭建代码
  • (3)选择元素——(17)练习(Exercises)
  • (编译到47%失败)to be deleted
  • (二)Linux——Linux常用指令
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (回溯) LeetCode 40. 组合总和II
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (一)kafka实战——kafka源码编译启动
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (轉)JSON.stringify 语法实例讲解
  • .Net Core和.Net Standard直观理解
  • .NET Micro Framework初体验(二)
  • .net 获取某一天 在当月是 第几周 函数