python根据键值对字典排序_使用Python怎样用字典的值对字典进行排序

这是 Stack Overflow 上点赞比较多的一篇文章的翻译。希望能对 Python 学习者有所帮助。

问题

我有个字典,字典的值来自于数据库:一个是字符串,一个是数字.字符串是唯一的,所以键就是字符串.我可以用键来排序,但是怎么用值来排序呢?

注:我已经看过另一个问题怎样对列表中的字典的键值对字典进行排序?,或许这种方法可以,但是我确实只需要一个字典,我想看看还有其他更好的方法.

答案

对字典进行排序是不可能的,只有把字典转换成另一种方式才能排序.字典本身是无序的,但是像列表元组等其他类型是有序的.所以你需要用一个元组列表来表示排序的字典.

看下面的例子:import operator

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

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

sorted_x是一个元组列表,用每个元组的第二个元素进行排序.dict(sorted_x) == x.

如果想要用键来进行排序:import operator

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

sorted_x = sorted(x.items(), key=operator.itemgetter(0))

当然还可以采用下面的用法:sorted(d.items(), key=lambda x: x[1])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值