我的程序没有正确排序

时间:2016-11-06 01:42:22

标签: python-3.x

我正在从一个文件中制作一个直方图,但我得到它的工作,但它没有正确排序。含义100 90 50等。

这是我的代码:

from collections import Counter
data=[]
with open("data.txt", 'r') as f:
    for line in f:
    line = line.strip()
    data.append(str(line))

counts = Counter(data)

for key, size in sorted(counts.items()):
    print('{}: {}'.format(key, int(size) * '*'))

这是输出:

100: ******
25: **
50: ***
60: *
65: *
70: **
75: *
80: ****
85: ****
90: ***

有什么建议吗?

编辑:

我的意思是他们按顺序排列数字。所以100,25,50,......我想要它100,90,85,.....

1 个答案:

答案 0 :(得分:0)

njzk2绝对正确,谢谢! 你能做到的一种方法就是:

...
line = line.strip()
# casting to 'int' type just before populating in data table..
data.append(int(line)) 
...

然后,你可以

...
# applying reversed to reorder from ascending order to descending order.
for key, size in sorted(counts.items(), reverse=True):
...