gpt4 book ai didi

python - 掷骰子的频率,然后获得最常见的掷骰子

转载 作者:行者123 更新时间:2023-12-03 20:19:13 24 4
gpt4 key购买 nike

所以,我写了这段代码,它首先列出了 1000 卷。然后我写了一个函数,它使用字典来获得每个掷骰子的频率。然后我想打印出现次数最多的滚动及其频率。

import random
L = []
for i in range(1000):
currentRoll = random.randint(1, 6)
L.append(currentRoll)


def diceFreq(L):
rollCount = {}
for roll in L:
if roll not in rollCount:
rollCount[roll] = 1
else:
rollCount[roll] += 1
print(rollCount)
print(max(rollCount, key=rollCount.get))
print(max(rollCount.values()))

diceFreq(L)

我不明白 print(max(rollCount, key=rollCount.get)) 到底在做什么?

最佳答案

Max 将接收一个可迭代对象并评估最大值。即:

max([1,2,3]) # >> returns 3
max("abc") # >> returns 'c'
max({"a": 10, "b": 5}) # >> returns 'b'

您的 rollCount 是一个默认情况下会遍历键的字典。

但是,当您将 key 添加到 max 函数时,它会根据您设置的可调用对象评估要被视为 max 的值。

即:

max([1,2,3], key=lambda x: -x) # >> returns 1

在这种情况下,它将在将最大值发送给可调用对象后比较最大值。(1,2,3 会变成 -1,-2,-3 进行比较,但会返回原始值)。

当您从字典调用 .get 时,它会期望传递一个 key。当你这样做时:

d = {"a": 10, "b": 5}
max(d, key=d.get) # returns 'a'

它不会比较 'a' >= 'b' 而是 d.get('a') >= d.get('b')

d.get('a') # >> 10
d.get('b') # >> 5

在这种情况下返回 'a'

关于python - 掷骰子的频率,然后获得最常见的掷骰子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59147802/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com