题目
题目: 随机返回字典中的一个key,并保证返回这个key的概率和它所对应的value成正比。 假设 key 为 str 类型,value 为 int 或者 float 类型。 例如:
dd = {
'a': 2,
'b': 3,
'c': 5,
}
解法一
这个是我第一次做出的答案,整体上有点麻烦。
解法二
如果值限定了是 int 类型的话,可以尝试:
解法三
解法三与解法二类似,也是限定值必须是 int 类型: 这种看上去更加简洁:
解法四
解法四与解法一的思路接近,是一种求累计值与随机概率对应的方法。 但是限定于 value 是 int 的情况。
解法五
还可以算出每个的概率,然后在100 个中去生成原来的key,再去random.choice() 这 100 个key。