我正在创建一个骰子滚动模拟器,它返回滚动数字的频率以及滚动的数字。您可以输入边的数量和卷的数量。好的入门项目,所以我被告知。我使用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
回到我的例子,由于编码的方式,如果六个真的没有出现,它甚至不会被打印,但确实如此。希望你和你的蟒蛇智慧能够提供帮助!
答案 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))