码迷,mamicode.com
首页 > 编程语言 > 详细

sort a Python dictionary by value

时间:2016-12-27 00:20:22      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:lan   collect   ref   targe   range   不能   value   blog   doc   

首先要明确一点,Python的dict本身是不能被sort的,更明确地表达应该是“将一个dict通过操作转化为value有序的列表”

有以下几种方法:

1. 

import operator
x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
sorted_x = sorted(x.items(), key=operator.itemgetter(1))
#sorted by value

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

 

2.

sorted(dict1, key=dict1.get)

3.

sorted(d.items(), key=lambda x: x[1])

4.

sorted([(value,key) for (key,value) in mydict.items()])

5. Use OrderedDict

>>> # regular unsorted dictionary
>>> d = {banana: 3, apple: 4, pear: 1, orange: 2}

>>> # dictionary sorted by key
>>> OrderedDict(sorted(d.items(), key=lambda t: t[0]))
OrderedDict([(apple, 4), (banana, 3), (orange, 2), (pear, 1)])

>>> # dictionary sorted by value
>>> OrderedDict(sorted(d.items(), key=lambda t: t[1]))
OrderedDict([(pear, 1), (orange, 2), (banana, 3), (apple, 4)])

>>> # dictionary sorted by length of the key string
>>> OrderedDict(sorted(d.items(), key=lambda t: len(t[0])))
OrderedDict([(pear, 1), (apple, 4), (orange, 2), (banana, 3)])

 

sort a Python dictionary by value

标签:lan   collect   ref   targe   range   不能   value   blog   doc   

原文地址:http://www.cnblogs.com/giddens/p/6224037.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!