博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
py编程技巧-1.4-如何根据字典中值的大小对于字典中的项排序
阅读量:5944 次
发布时间:2019-06-19

本文共 973 字,大约阅读时间需要 3 分钟。

实际案例:

某班英语成绩以字典形式存储为{'mtianyan',100,'tudou':'100','shabi':59}
根据成绩高低计算学生排名

解决方案:

使用内置函数sorted(内置函数以c的速度运行)
1. 利用zip将字典数据转换为元组
2. 传递sorted函数的key参数

a = sorted([9,1,2,8,5])print a

按值对字典排序

普通做法:

from random import randint#使用字典解析创建成绩表dic = { x:randint(60,100) for x in 'abcdefg'}print dicskey = sorted(dic)print skeyprint iter(dic)print list(iter(dic))# 将字典进行转换变成sorted可以排序的print (97,'a') > (69,'b')print (97,'a') > (97,'b')print dic.keys()print dic.values()print zip(dic.keys(),dic.values())#进行优化内存使用可迭代对象print zip(dic.itervalues(),dic.iterkeys())print sorted(zip(dic.itervalues(),dic.iterkeys()))

利用sorted的key传值

sorted 传入三个参数:

1:一个可迭代的对象
2:key值:这里传入一个lambda匿名函数。取出每个迭代项的values
3:reverse:正序还是倒序:默认为False从小到大

print dic.items()# 从小到大排列print sorted(dic.items(), key=lambda x:x[1])# 从大到小排列print sorted(dic.items(), key=lambda x:x[1],reverse =True)##优化内存版本# 从小到大排列print sorted(dic.iteritems(), key=lambda x:x[1])# 从大到小排列print sorted(dic.iteritems(), key=lambda x:x[1],reverse =True)

转载地址:http://gjzxx.baihongyu.com/

你可能感兴趣的文章
Latex学习笔记0
查看>>
css控制div强制换行
查看>>
ios 底部用定位 fixed。在软件盘出来后,页面元素被顶上去一部分,fixed定位的footer也跑到了上面去。解决方法...
查看>>
HDU1257题解
查看>>
Iterator
查看>>
Spring MVC整合Velocity
查看>>
fiddler+android抓包工具配置使用
查看>>
Spring Data JPA 复杂/多条件组合分页查询
查看>>
css文本 颜色1
查看>>
博客搬家了
查看>>
JavaScript中的作用域,闭包和上下文
查看>>
Python中使用ElementTree解析xml
查看>>
Python LOGGING使用方法
查看>>
Dominating Patterns
查看>>
截取指定字符串
查看>>
metrics-server最新版本有坑,慎用
查看>>
linux虚拟文件系统浅析
查看>>
HBase数据压缩编码探索
查看>>
sprint计划会议总结
查看>>
团队项目冲刺1
查看>>