如何计算我得到某个结果的次数



我正试图编写一个代码,从1-10之间选择5个数字,并选择其中的最大值。我重复实验1000次,但我想看看有多少次得到的结果

import random
for i in range (1,1000):
b = random.choices(range(1, 11), k=5)
max(b)
print("The X value for %(n)s is {%(c)s} " % {'n': b, 'c': max(b)})

我想看到类似10的事情发生500次,9的事情发生300次。我试图定义一本字典,但没能做到。如果有任何帮助,将不胜感激

使用defaultdict

import random
from collections import defaultdict
counter = defaultdict(int)
for i in range(1, 1000):
numbers = random.choices(range(1, 11), k=5)
counter[max(numbers)] += 1
print(counter)

输出:

defaultdict(<class 'int'>, {10: 406, 8: 161, 9: 269, 7: 86, 6: 40, 5: 25, 4: 10, 3: 2})

您可以使用Counter和类似这样的生成器表达式:

from collections import Counter
Counter(max(random.choices(range(1, 11), k=5)) for _ in range(1, 1000))

示例输出:

Counter({10: 388, 9: 281, 8: 161, 7: 91, 6: 41, 5: 23, 4: 10, 3: 4})

您可以创建一个包含所有必要键的字典,然后在每次出现键时将值加1。

import random
number_counts = {x:0 for x in range(1,11)} # this will create a dictionary with 1-10 as keys and 0 as values
for i in range(1,1000):
b = random.choices(range(1,11),k=5)
m = max(b)
number_counts[m] += 1
print(number_counts)

使用.count((方法。非常简单的TBF。以下是它的工作原理,用谷歌的话说。

该方法应用于给定的列表,并接受单个参数。将对传递到方法中的参数进行计数,并返回该项在列表中的出现次数。

最新更新