文档章节

Python字典按值排序、包含字典的列表按字典值排序的方法

不容置喙
 不容置喙
发布于 2014/09/24 21:40
字数 298
阅读 940
收藏 8

#-*- encoding=utf-8 -*-


import operator

#按字典值排序(默认为升序)

x = {1:2, 3:4, 4:3, 2:1, 0:0}

sorted_x = sorted(x.iteritems(), key=operator.itemgetter(1))

print sorted_x

#[(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)]

#如果要降序排序,可以指定reverse=True

sorted_x = sorted(x.iteritems(), key=operator.itemgetter(1), reverse=True)

print sorted_x

#[(3, 4), (4, 3), (1, 2), (2, 1), (0, 0)]

#或者直接使用list的reverse方法将sorted_x顺序反转

#sorted_x.reverse()


#取代方法是,用lambda表达式

sorted_x = sorted(x.iteritems(), key=lambda x : x[1])

print sorted_x

#[(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)]

sorted_x = sorted(x.iteritems(), key=lambda x : x[1], reverse=True)

print sorted_x

#[(3, 4), (4, 3), (1, 2), (2, 1), (0, 0)]


#包含字典dict的列表list的排序方法与dict的排序类似,如下:

x = [{'name':'Homer', 'age':39}, {'name':'Bart', 'age':10}]

sorted_x = sorted(x, key=operator.itemgetter('name'))

print sorted_x

#[{'age': 10, 'name': 'Bart'}, {'age': 39, 'name': 'Homer'}]

sorted_x = sorted(x, key=operator.itemgetter('name'), reverse=True)

print sorted_x

#[{'age': 39, 'name': 'Homer'}, {'age': 10, 'name': 'Bart'}]

sorted_x = sorted(x, key=lambda x : x['name'])

print sorted_x

#[{'age': 10, 'name': 'Bart'}, {'age': 39, 'name': 'Homer'}]

sorted_x = sorted(x, key=lambda x : x['name'], reverse=True)

print sorted_x

#[{'age': 39, 'name': 'Homer'}, {'age': 10, 'name': 'Bart'}]


本文转载自:http://blog.csdn.net/ghostfromheaven/article/details/7675096

不容置喙
粉丝 14
博文 12
码字总数 1541
作品 0
南京
私信 提问
加载中

评论(0)

Python关于字典排序的知识讲解

1、 准备知识: 在python里,字典dictionary是内置的数据类型,是个无序的存储结构,每一元素是key-value对: 如:dict = {‘username’:‘xiaoming’,‘password’:‘123456’},其中‘u...

xieganyu3460的博客
2018/07/27
0
0
python中字典按键或键值排序

出自:快乐的雨点的博客 http://blog.csdn.net/xsj_blog/article/details/51847831 字典排序 在程序中使用字典进行数据信息统计时,由于字典是无序的所以打印字典时内容也是无序的。因此,为...

wangpengtai
2018/06/29
0
0
Python中 字典排序、列表排序

一、字典排序 在程序中使用字典进行数据信息统计时,由于字典是无序的所以打印字典时内容也是无序的。因此,为了使统计得到的结果更方便查看需要进行排序。Python中字典的排序分为按“键”排...

duhaizhang
2012/08/06
4.2W
0
python编程中常用的12种基础知识总结

python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序、去重,字典排序,字典、列表、字符串互转,时间对象操 作,命令行参数解析(getopt),print 格式化输出,...

dandan.fs
2013/10/14
331
1
《利用Python进行数据分析》-3-数据结构、函数和文件

一、 数据结构和序列 元组tuple 创建 长度固定、不可改变,但是元组中的对象可能是可变对象 创建方式:直接用英文逗号隔开,带上圆括号 若元组中只有一个元素,最后必须带上英文逗号 元组中元...

皮皮大
2019/07/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

广州哪里有开餐饮费发票

广州开餐饮费发票发票电薇13564998196陈晨100 % 真。从主业来看,2019年众诚保险围绕车险业务采取增设分支机构、加强合作、优化用户体验等动作,但综合成本率仍有所上行,业内指出,车险的价...

枅票微fp2090
2分钟前
0
0
深圳哪里有开餐饮费发票

深圳开餐饮费发票发票电薇13564998196陈晨100 % 真。从主业来看,2019年众诚保险围绕车险业务采取增设分支机构、加强合作、优化用户体验等动作,但综合成本率仍有所上行,业内指出,车险的价...

枅票嶶fp2090
5分钟前
5
0
略谈分布式系统中的容器设计模式

本文作者:zytan_cocoa 略谈分布式系统中的容器设计模式 谭中意 2020/3/5 前言:云原生(Cloud Native)不仅仅是趋势,更是现在进行时,它是构建现代的,可弹性伸缩的,快速迭代的计算网络服...

百度开发者中心
03/11
17
0
OSChina 周三乱弹 —— 小姐姐的领带有点带歪了,请帮忙正一下

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《アイタクテ -voice & piano-》- 和紗 手机党少年们想听歌,请使劲儿戳(这里) ...

小小编辑
今天
25
0
对象名称前的单下划线和双下划线是什么意思?

问题: Can someone please explain the exact meaning of having leading underscores before an object's name in Python? 有人可以解释一下在Python中对象名称前加下划线的确切含义吗? ......

技术盛宴
今天
29
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部