在python中组织Counter()显示?

时间:2013-12-03 16:00:48

标签: python random counter simulator dice

我正在尝试创建一个骰子模拟器并使用计数器来计算结果出现的次数。这就是我写的:

import random
from collections import Counter 


x = input ("How many sides does you dice have?")
y = input ("How many times do you want to roll the dice?")

result = Counter()

for i in range (y):
    z = random.randint (1, x)
    result [z] += 1

print result

这会生成以下内容,这是正确的。

How many sides does you dice have?4
How many times do you want to roll the dice?10
Counter({1: 3, 2: 3, 4: 3, 3: 1})

但我不喜欢结果的显示方式。有没有办法对计数器结果进行排序和组织,以便显示如下?

1: 3
2: 4
3: 3
4: 1

1 个答案:

答案 0 :(得分:3)

遍历Counter.most_common()方法输出:

for roll, count in result.most_common():
    print '{}: {}'.format(roll, count)

这将输出从最常见到最少的卷。

您还可以循环排序的键:

for roll in sorted(result):
     print '{}: {}'.format(roll, result[roll])

此输出以数字顺序输出。