字典排序什么意思_字典排序问题
2018-01-03@望京
排序,立即想到用Python的内置函数sorted()
Python 2.x 中
sorted(...)
sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
Python 3.x 中
sorted(iterable, key=None, reverse=False)
Return a new list containing all items from the iterable in ascending order.
A custom key function can be supplied to customise the sort order, and the
reverse flag can be set to request the result in descending order.
字典按key排序
>>> dic = {'a':9, 'c':3, 'f':12, 'b':1, 'd':7}
>>>
>>> sorted(dic)
['a', 'b', 'c', 'd', 'f']
>>>
>>> sorted(dic.keys())
['a', 'b', 'c', 'd', 'f']
>>>
>>> sorted(dic.values())
[1, 3, 7, 9, 12]
>>>
>>> sorted(dic.items())
[('a', 9), ('b', 1), ('c', 3), ('d', 7), ('f', 12)]
>>>
>>> for k in sorted(dic):
... print dic[k]
...
9
1
3
7
12
>>>
字典是无序的,对字典排序本身是一个没有太大意义的事,但是面试的时候总会遇到==''
那么问题来了,如何对字典按照value排序呢(默认是对key进行排序)?
首先需要知道sorted()这个函数的几个参数的意思(按照Python 3.x来说明):
- iterable 指的是可迭代对象,可以是dic,dic.items(), dic.keys(), dic.values() 等等;
- key key对应一个函数,用来选取参与比较的元素;
- reverse 排序规则. reverse = True 或者 reverse = False(默认值);
Py2中使用sort的cmp参数自定义排序方式
>>>
>>> res = [{'name':'hi','age':10},{'name':None,'age':10},{'name':'bo','age':10},{'name':'aaa','age':10}]
>>>
>>> res.sort(cmp=lambda x, y: cmp(x['name'], y['name']))
>>>
>>> res
[{'age': 10, 'name': None}, {'age': 10, 'name': 'aaa'}, {'age': 10, 'name': 'bo'}, {'age': 10, 'name': 'hi'}]
>>>
使用key参数来实现
items()方法将字典的元素 转化为了元组
>>> dic
{'a': 9, 'c': 3, 'b': 1, 'd': 7, 'f': 12}
>>> dic.items()
[('a', 9), ('c', 3), ('b', 1), ('d', 7), ('f', 12)]
>>>
>>> sorted(dic.items())
[('a', 9), ('b', 1), ('c', 3), ('d', 7), ('f', 12)]
>>>
>>> sorted(dic.items(), key=lambda x:x[1])
[('b', 1), ('c', 3), ('d', 7), ('a', 9), ('f', 12)]
>>>
使用zip来实现
>>> dic
{'a': 9, 'c': 3, 'b': 1, 'd': 7, 'f': 12}
>>>
>>> new_dic = zip(dic.values(), dic.keys())
>>>
>>> new_dic
[(9, 'a'), (3, 'c'), (1, 'b'), (7, 'd'), (12, 'f')]
>>>
>>> sorted(new_dic)
[(1, 'b'), (3, 'c'), (7, 'd'), (9, 'a'), (12, 'f')]
>>>
字典排序什么意思_字典排序问题相关推荐
- php字符串字典排序,javascript实现PHP字典排序ksort
/** * javascript实现PHP字典排序 * @param {Object} vm 当前this * @param {Array} inputArr 规定要进行排序的数组 * @param ...
- 字典排序什么意思_字典序排序
查字典时,比如查单词 Love ,我们是从第一个字母L,开始查找,在A~Z开头中的单词中,不管是实际操作的二分查找还是别的方式查找,总能找到L打头的单词所在的位置范围,然后又在这个范围内开始查找O字母 ...
- 字典排序什么意思_列表及字典的排序
一.列表嵌套元组的排序 1.列表的内置方法s.sort() sort(...) L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN ...
- python字典排序并输出_对Python的字典进行排序
我们知道Python的内置dictionary数据类型是无序的,通过key来获取对应的value.可是有时我们需要对dictionary中 的item进行排序输出,可能根据key,也可能根据value ...
- python列表按照指定顺序排序-python列表排序、字典排序、列表中字典排序
手记 -- encoding=utf-8 -- python3代码 import operator 一. 按字典值排序(默认为升序) x = {1:2, 3:4, 4:3, 2:1, 0:0} sor ...
- java单词按字典排序_最终Java日志字典:开发人员最常记录的单词是什么?
java单词按字典排序 最终的记录字典,或者:我们记录的最常见单词是什么? 日志文件是调试应用程序的最常用方法,当解决错误时,它们肯定可以引导我们朝正确的方向发展. 但是,大多数日志文件每天都会增加一 ...
- 【工程实践】python 字典排序
前言 在数据处理时,为了方便统计经常使用字典存储数据.python中的字典是'键:值'对的可变序列.排序时可以指定根据键或者是值为对象进行排序.用到的函数是sorted(). 1.语法规则 1-1 代 ...
- python字典排序|按值排序|按键排序
python字典排序 用sorted函数 字典按值排序 sorted(dic.items(), key=lambda x:x[1], reverse=True) dic为字典名 reverse为Tru ...
- Python字典排序、字典列表排序、嵌套字典排序
python字典是常用的数据结构,经常用到各种python字典的排序,记录一下不同字典排序的方法. 正常字典排序 正常的字典我们都知道,其排序如下: a={100:1,101:0,102:2}b=so ...
最新文章
- 特斯拉起诉小鹏汽车员工窃取商业机密,何小鹏回应
- 春节囤货清单 | 15篇近期值得读的AI论文
- java keytool 代码_JDK keytool证书工具功能代码解析_java_脚本之家
- C#三层结构(4)——扩展-加密字符窜源代码
- listview移动时 item背景颜色错位问题
- Oracle10g备份集压缩新特性(Backupset Compression)
- 【渝粤题库】国家开放大学2021春1376机械制造装备及设计题目
- apache 修改服务器配置,Apache服务器配置全攻略
- jq之hover()
- 经典功率谱估计及Matlab仿真
- Spring 实战-第一章-基本概念
- 下班前网上搜集的方法哈哈
- #if defined和#if !defined的含义
- 等保要求的 linux 系统扫描脚本
- RegExp-2 【正则量词、属性、方法、使用技巧】
- 某天的零点时刻0:0:0 和截至时刻23:59:59
- python3获取天气预报
- Process-wide API spying - an ultimate hack 摘要翻译(二)
- 数值卡,让数据可视化玩出新花样丨三叠云
- 飞机飞行与碰撞问题matlab,建模案例—飞行管理问题.ppt
热门文章
- 企业实战_14_MyCat跨分片查询_全局表
- Excel 数据导入到Access数据库,报错“找不到可安装的ISAM”的解决办法
- 【Linux】快速搭建一个基于Vue的大型单页应用
- php 模数 指数 公钥生成_php实现JWT认证
- java double add,Java中的DoubleStream.Builder add()方法
- 星外主机销售系统源码_业务员大客户销售订货订单管理系统源码开发外包解析...
- java sonar教程_SonarQube配置与使用教程.PDF
- java垃圾回收 分代_Java分代垃圾回收策略原理详解
- qt中使用QCompleter实现查找功能
- mate7安装android o,华为Mate7升级安卓6.0详细教程