Python,将字典排序以表示直方图
我在Python中有一个这样的dict
结构,
{'68': 1, '10': 2, '3': 1, '50': 1}
我想把这个dict
打印成一个直方图。问题是我不知道怎么排序这个dict
,才能生成直方图。
我见过很多关于如何按键或值的升序或降序来排序dict
的帖子,但没有看到过如何把它排成直方图的格式;也就是说,最大的值的键在中间,其他的键分布在两边,形成一个好像山的图形。
目前我可以把这个dict
打印成一种直方图的格式,但它并没有按照直方图的结构来排序。
有没有什么想法可以帮我把我的dict
排序成直方图?也许numpy
或collections
里有我不知道的东西?
1 个回答
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)]
>>>