Python,将字典排序以表示直方图

0 投票
1 回答
1515 浏览
提问于 2025-04-17 23:00

我在Python中有一个这样的dict结构,

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

我想把这个dict打印成一个直方图。问题是我不知道怎么排序这个dict,才能生成直方图。

我见过很多关于如何按键或值的升序或降序来排序dict的帖子,但没有看到过如何把它排成直方图的格式;也就是说,最大的值的键在中间,其他的键分布在两边,形成一个好像山的图形。

目前我可以把这个dict打印成一种直方图的格式,但它并没有按照直方图的结构来排序。

有没有什么想法可以帮我把我的dict排序成直方图?也许numpycollections里有我不知道的东西?

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)]
>>> 

撰写回答