假设我有一个字典。
data = {1:'b', 2:'a'}
我想按“b”和“a”对数据进行排序,这样就可以得到结果。
'a','b'
我该怎么做?
有什么想法吗?
发布于 2013-05-27 19:23:17
要获取这些值,请使用
sorted(data.values())
要获取匹配的密钥,请使用key
函数
sorted(data, key=data.get)
获取按值排序的元组列表
sorted(data.items(), key=lambda x:x[1])
相关:请参阅此处的讨论:Dictionaries are ordered in Python 3.6+
发布于 2013-05-27 19:53:34
如果您实际上想对字典进行排序,而不仅仅是获得一个排序列表,那么可以使用collections.OrderedDict
>>> 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']
发布于 2013-05-27 20:35:48
从你的评论到gnibbler的回答,我想说你想要一个按值排序的键值对列表:
sorted(data.items(), key=lambda x:x[1])
https://stackoverflow.com/questions/16772071
复制相似问题