首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >按值对dict排序python

按值对dict排序python
EN

Stack Overflow用户
提问于 2013-05-27 19:22:14
回答 9查看 263.5K关注 0票数 92

假设我有一个字典。

代码语言:javascript
复制
data = {1:'b', 2:'a'}

我想按“b”和“a”对数据进行排序,这样就可以得到结果。

代码语言:javascript
复制
'a','b'

我该怎么做?

有什么想法吗?

EN

回答 9

Stack Overflow用户

发布于 2013-05-27 19:23:17

要获取这些值,请使用

代码语言:javascript
复制
sorted(data.values())

要获取匹配的密钥,请使用key函数

代码语言:javascript
复制
sorted(data, key=data.get)

获取按值排序的元组列表

代码语言:javascript
复制
sorted(data.items(), key=lambda x:x[1])

相关:请参阅此处的讨论:Dictionaries are ordered in Python 3.6+

票数 179
EN

Stack Overflow用户

发布于 2013-05-27 19:53:34

如果您实际上想对字典进行排序,而不仅仅是获得一个排序列表,那么可以使用collections.OrderedDict

代码语言:javascript
复制
>>> from collections import OrderedDict
>>> from operator import itemgetter
>>> data = {1: 'b', 2: 'a'}
>>> d = OrderedDict(sorted(data.items(), key=itemgetter(1)))
>>> d
OrderedDict([(2, 'a'), (1, 'b')])
>>> d.values()
['a', 'b']
票数 46
EN

Stack Overflow用户

发布于 2013-05-27 20:35:48

从你的评论到gnibbler的回答,我想说你想要一个按值排序的键值对列表:

代码语言:javascript
复制
sorted(data.items(), key=lambda x:x[1])
票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16772071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档