使用count()计算某些内容出现在列表中的次数

时间:2014-04-14 14:00:05

标签: python

嗯,首先,你好。我不相信这已经出现了,所以如果有的话,请纠正我。

我正在创建一个骰子滚动模拟器,它返回滚动数字的频率以及滚动的数字。您可以输入边的数量和卷的数量。好的入门项目,所以我被告知。我使用count()来计算每个数字在列表中出现的次数。

它有点偏离。列表中的最高值比它应该少一个,例如:

你有一个6面的模具,你滚了6次。你得到1,2,3,4,5和6.当它显示出现时,它会显示除最高值以外的所有值为1.它表示六次出现0次。

这里是代码slab:

    a.sort()
    topvalue = a.pop()
    while topvalue >= 0:
        y = a.count(topvalue)
        print topvalue, "appears", y< "times."
        topvalue = topvalue-1
        if topvalue == -1:
            break

回到我的例子,由于编码的方式,如果六个真的没有出现,它甚至不会被打印,但确实如此。希望你和你的蟒蛇智慧能够提供帮助!

1 个答案:

答案 0 :(得分:2)

要获取最后一个元素,而不是:

topvalue = a.pop()

做的:

topvalue = a[-1]  # This represents the last index.

这是因为pop()实际上删除最后一个元素,因此是一次性错误。


虽然作为一个想法,但我会这样做:

from collections import Counter

amounts = Counter(a)
for item, num in amounts.items():
    print('{0} occurred {1} times'.format(item, num))