Python,对dict进行排序以表示直方图

时间:2014-03-19 17:52:55

标签: python sorting dictionary

我在python中有一个dict struture,

{'68': 1, '10': 2, '3': 1, '50': 1}

我想打印出代表dict的直方图。问题是我不确定如何以产生直方图的方式对dict进行排序。

我看过很多关于如何通过键或值按递增/递减顺序对dict进行排序的帖子,但没有任何内容以直方图格式排列;其中最大值的键位于中心,其他值分布在两侧,以创建一个漂亮的山峰图。

目前我可以用直方图类型格式打印dict,但同样,它不会被分类为类似直方图的结构

关于如何将dict排序为直方图的任何想法?也许numpycollections有一些我不知道的事情?

1 个答案:

答案 0 :(得分:0)

将字典转换为(键,值)元组列表。

>>> d = {'68': 1, '10': 2, '3': 1, '50': 1}
>>> d = [(int(key), value) for key, value in d.iteritems()]

按每个元组的第一项对列表进行排序

>>> from operator import itemgetter
>>> d.sort(key = itemgetter(0))
>>> print d
[(3, 1), (10, 2), (50, 1), (68, 1)]
>>>