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( ...
随机推荐
- Python学习笔记(八)
Python学习笔记(八): 复习回顾 递归函数 内置函数 1. 复习回顾 1. 深浅拷贝 2. 集合 应用: 去重 关系操作:交集,并集,差集,对称差集 操作: 定义 s1 = set('alvin ...
- ES6-字符串的扩展-模板字符串
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- python第五课——自定义线程池
内容概要: 1.low版线程池 2.绝版线程池 1.low版线程池 设计思路:运用队列queue 将线程类名放入队列中,执行一个就拿一个出来 import queue import threading ...
- LINUX 笔记-cal 命令
显示当前月份日历 命令:cal 显示指定月份的日历 命令:cal 9 2012 显示2016年日历 命令:cal 2016
- Windows下Mysql5.7开启binlog步骤及注意事项
1.查看是否开启了binlog:show binary logs; 默认情况下是不开启的. 2.开启binlog:修改mysql的配置文件my.ini.添加如下配置: 该文件默认不允许修改,需要右键“ ...
- Promise对象解读
首先强调的是"Promise"是对象,也就是说与其他JavaScript对象的用法,没有什么两样:其次,它起到代理作用(proxy),充当异步操作与回调函数之间的中介.它使得异步操 ...
- 树莓派.系统.修改声音输出通道(auto,hdmi,耳机接口)
树莓派平时通过耳机接口一直在正常使用 有一天外接了一个HDMI的屏幕, 结果耳机接口连着的音箱突然就没声音了,在网上查了资料,发现原来树莓派声音输出有3种模式 记录如下: 在命令行终端上输入下面命令将 ...
- LeetCode 204. Count Primes (质数的个数)
Description: Count the number of prime numbers less than a non-negative number, n. 题目标签:Hash Table 题 ...
- 在webapi中为Action使用dynamic参数实现Post方式调用
1.在webapi中使用controller/action/id的路径配置,打开文件[App_Start] -[WebApiConfig] config.Routes.MapHttpRoute( na ...
- 前后端分离跨服务器文件上传-Java SpringMVC版
近来工作上不上特别忙,加上对后台java了解一点,所以就抽时间,写了一个java版本的前后端分离的跨服务器文件上传功能,包括前后端代码. 一.Tomcat服务器部分 1.Tomcat服务器 单独复制一 ...