如何根据浮点值从字典中随机选择一个键

假设我有一个字典

{'option one': 5.0, 'option two': 5.0, 'option three': 10.0}

我如何根据上述概率随机选择一个密钥(即选项一和二将有 25% 的被选中。选项 3 将有 50% 的几率被选中)


哆啦的时光机
浏览 171回答 1
1回答

慕神8447489

作为一个班轮:import randomrandom.seed(100)d = {'option one': 5.0, 'option two': 5.0, 'option three': 10.0}picked = random.choices(*zip(*d.items()))[0]print(picked)# option one更多细分:import randomrandom.seed(100)d = {'option one': 5.0, 'option two': 5.0, 'option three': 10.0}# Key-value pairs in dictionaryitems = d.items()# "Transpose" items: from key-value pairs to sequence of keys and sequence of valuesvalues, weights = zip(*items)# Weighted choice (of one element)picked = random.choices(values, weights)[0]print(picked)# option one注意random.choices(与 不同random.choice,提供weights参数)是在 Python 3.6 上添加的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python