我有一本这样的字典:{"one": 5, "two": 1, "three": 25, "four": 14}
我想从字典中选择一个与值成比例的键,即“三个”的机会最大,然后是“四个”,然后是“一个”,然后是“两个”。我看过this问题,但这似乎特定于何时数字加起来为1。
我真的不知道如何开始,将不胜感激。
答案 0 :(得分:2)
将random.choices与weights
参数一起使用:
random.choices(人口,权重=无,*,cum_weights =无,k = 1)
返回从总体中选择的k大小的元素列表 替代。如果填充为空,则引发IndexError。
如果指定了权重序列,则根据 相对权重。或者,如果cum_weights序列为 给定,则根据累积权重进行选择
import random
d = {"one": 5, "two": 1, "three": 25, "four": 14}
keys = list(d.keys())
values = list(d.values())
random_key = random.choices(keys, weights=values)
print(random_key)
# ['three']