为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

哆啦的时光机 2022-01-11 19:39:47
假设我有一个字典{'option one': 5.0, 'option two': 5.0, 'option three': 10.0}我如何根据上述概率随机选择一个密钥(即选项一和二将有 25% 的被选中。选项 3 将有 50% 的几率被选中)
查看完整描述

1 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

作为一个班轮:


import random


random.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 random


random.seed(100)

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

# Key-value pairs in dictionary

items = d.items()

# "Transpose" items: from key-value pairs to sequence of keys and sequence of values

values, 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 上添加的。


查看完整回答
反对 回复 2022-01-11
  • 1 回答
  • 0 关注
  • 170 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信