Python [习题] 字典排序
[习题] 对此字典分别按照value 和key 如何排序?
dic1 = {'and':40, 'a':54, 'is':60, 'path':139, 'the':124, 'os':49}
In [38]: dic1 = {'and':40, 'a':54, 'is':60, 'path':139, 'the':124, 'os':49}
...: print(sorted(zip(dic1.values(),dic1.keys()))) #按value的值升序
...: print(sorted(zip(dic1.values(),dic1.keys()),reverse=True)) #按value的值降序
...:
...: print(sorted(zip(dic1.keys(),dic1.values()))) #按key的ascii码升序
...: print(sorted(zip(dic1.keys(),dic1.values()),reverse=True)) #按key的ascii码降序
...:
...: print(sorted(dic1.items(),key=lambda x:x[1],)) #按value的值升序
...: print(sorted(dic1.items(),key=lambda x:x[1],reverse=True)) #按value的值降序
...:
...: print(sorted(dic1.items(),key=lambda x:x[0],)) #按key的ascii码升序
...: print(sorted(dic1.items(),key=lambda x:x[0],reverse=True)) #按key的ascii码降序
...:
[(40, 'and'), (49, 'os'), (54, 'a'), (60, 'is'), (124, 'the'), (139, 'path')]
[(139, 'path'), (124, 'the'), (60, 'is'), (54, 'a'), (49, 'os'), (40, 'and')]
[('a', 54), ('and', 40), ('is', 60), ('os', 49), ('path', 139), ('the', 124)]
[('the', 124), ('path', 139), ('os', 49), ('is', 60), ('and', 40), ('a', 54)]
[('and', 40), ('os', 49), ('a', 54), ('is', 60), ('the', 124), ('path', 139)]
[('path', 139), ('the', 124), ('is', 60), ('a', 54), ('os', 49), ('and', 40)]
[('a', 54), ('and', 40), ('is', 60), ('os', 49), ('path', 139), ('the', 124)]
[('the', 124), ('path', 139), ('os', 49), ('is', 60), ('and', 40), ('a', 54)]
知识点: zip(),sorted(),lambda
zip:
zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。
用法: zip(iter1 [,iter2 [...]]) --> zip object:
In [79]: a = 'abcdefg' In [80]: b = '1234567890' In [81]: zip(a,b)
Out[81]: <zip at 0x1ce2b8d4fc8> In [82]: c = zip(a,b) In [83]: for i in c:
...: print(i)
...:
('a', '1')
('b', '2')
('c', '3')
('d', '4')
('e', '5')
('f', '6')
('g', '7')
sorted:
对指定可迭代对象iterable 排序并返回一个新对象,不改变原数据;key 可以设置为按str、int或者指定值(如字典的value)排序,默认是None,将按照默认对象类型排序,如果对象是str,则按ascii 码排序,如果是对象是int 数字,则按数字排序;reverse 默认升序(False),True 为降序。
sorted(iterable, key=None, reverse=False)
lambda:
最后两处lambda 比较绕,可以在( http://pythontutor.com/visualize.html#mode=display )这个网站边调试边分析x 和x[1] 的值是什么。
以下截图中,lambda表达式中x的值是一个tuple("and",40),x[1] 就表示第1个元素(40),最终sorted 就是按字典的value 来进行排序。

Python [习题] 字典排序的更多相关文章
- 深入Python(1): 字典排序 关于sort()、reversed()、sorted()
http://www.cnblogs.com/BeginMan/p/3193081.html 一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠 ...
- python中字典排序,列表中的字典排序
python中字典排序,列表中的字典排序 一.使用python模块:operator import operator #首先要导入模块operator x = {1:2, 3:4, 4:3, 2:1, ...
- python中字典排序
一.Python的排序 1.reversed() 这个很好理解,reversed英文意思就是:adj. 颠倒的:相反的:(判决等)撤销的 print list(reversed(['dream','a ...
- python进阶--字典排序
zip()函数 sorted() 要求对字典中,按值的大小排序 解决方案: 利用zip函数 zip函数介绍: zip函数可以将可迭代对象打包成一个个元组,在python3中返回一个对象,在python ...
- python 对字典"排序"
对字典进行排序?这其实是一个伪命题,搞清楚python字典的定义---字典本身默认以key的字符顺序输出显示---就像我们用的真实的字典一样,按照abcd字母的顺序排列,并且本质上各自没有先后关系,是 ...
- Python - DICT 字典排序 - OrderedDict
官方地址: https://docs.python.org/2/library/collections.html#collections.OrderedDict >>> # regu ...
- Python [习题] 字典扁平化
习题: 将以下字典扁平化,输出为 target 字典格式source = {'a': {'b': 1, 'c': 2}, 'd': {'e': 3, 'f': {'g': 4}}}target = { ...
- python给字典排序
应用场景: 统计一篇文章中单词的出现频率,然后进行排序 利用sorted函数,返回一个已经排序好的list,但不改变原来的数据结构 In [1]: dt = {'a':3,'b':2,'c':1} I ...
- [Python] dict字典排序和多条件排序
利用lambda实现排序:要实现多条件排序,只需要依次指定排序的标准,具体实现如下 counter = {'是': 1, '不是': 1, '你': 3} counter_list = sorted( ...
随机推荐
- MySQL主从复制 + Mycat实现读写分离
说明:两台MySQL服务器都是使用CentOS6.5系统,MySQL版本为mysql-5.7.17 MySQL一主一被实现主从复制 注意:写包括insert,delete,update 操作:读只有s ...
- Masonry框架源码深度解析
Masonry是iOS在控件布局中经常使用的一个轻量级框架,Masonry让NSLayoutConstraint使用起来更为简洁.Masonry简化了NSLayoutConstraint的使用方式,让 ...
- UWP appButtonBar样式
UWP 的appButtonBar使用<AppBarButton Icon = "Next" Label = "Next" /> Icon是 Sym ...
- Mysql编写sql语句的小技巧
1.查询数据(保证查询性能) SELECT * 和 SELECT t.id , t.name:后者性能其实总体优于前者. 2.在查询的时候最好给表起个 别名,方便找到表中要查询的字段.执行sql的进行 ...
- 关于对vector3及其衍生变量的理解
关于对vector3,vector2类及其衍生变量的理解 vector3简单来讲即表示向量和点的系统类,这个结构用于处理向量和点,也包含许多做向量运算的函数. 而vector2即少一维向量的类,用于处 ...
- CMake vs Make对比
程序员现在已经使用了CMake和Make了很久.当您加入大公司或开始使用大型代码库开发项目时,您需要处理所有这些构建.你必须看到这些“CMakeLists.txt”文件浮动.你应该在终端上运行“cma ...
- mybatis 参数为list时,校验list是否为空
校验objStatusList 是否为空 <if test="objStatusList != null and objStatusList.size() > 0 "& ...
- ASP.NET Core中的OWASP Top 10 十大风险-SQL注入
不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻喷,如觉得我翻译有问题请挪步原博客地址 本博文翻译自: https://dotnetcoretutorials.com/201 ...
- SpringMVC自定义配置消息转换器踩坑总结
问题描述 最近在开发时候碰到一个问题,springmvc页面向后台传数据的时候,通常我是这样处理的,在前台把数据打成一个json,在后台接口中使用@requestbody定义一个对象来接收,但是这次数 ...
- KMP (next数组的性质及证明)
性质:如果len%(len-next[len-1])==0,则字符串中必存在最小循环节,且循环次数即为len/(len-next[len-1]); 证明:在前len个字符组成的字符串,存在最小循环节k ...