Python在字典中获取带权重的随机值实现方式
作者:什么都干的派森 发布时间:2022-12-11 05:21:44
标签:Python,字典,权重,随机值
一、前言
python在数组中随机取值有现成的方法,但是要给每个随机值被取到的概率加权重的话,可以参考下面这个方法
二、实现方式
import random
def random_with_weight(data_dict):
sum_wt = sum(data_dict.values()) # 计算权重和 sum_wt
ra_wt = random.uniform(0, sum_wt) # 随机获取 0-sum_wt 之间的一个浮点数 ra_wt
cur_wt = 0
for key in data_dict.keys():
cur_wt += data_dict[key] # 遍历并累加当前权重值
if ra_wt <= cur_wt: # 当随机数 <= 当前权重和时,返回权重对应的key
return key
if __name__ == '__main__':
# 权重字典
data_dict = {'历史': 1, '人文': 2, '科学': 8}
# 取十次测试结果
for _ in range(10):
value = random_with_weight(data_dict)
print(value)
# 历史
# 科学
# 科学
# 科学
# 科学
# 科学
# 人文
# 科学
# 历史
# 科学
来源:https://blog.csdn.net/weixin_43721000/article/details/128109870


猜你喜欢
- 使用Hugo构建站点的体验很棒。 首先是构建速度快,其次是使用起来简单,一个hugo命令,我们的站点就已经就绪。在构建过程中,Hugo提供了
- 环境:Ubuntu14.04,tensorflow=1.4(bazel源码安装),Anaconda python=3.6声明变量主要有两种方
- SQL中的单记录函数 1.ASCII 返回与指定的字符对应的十进制数; SQL> select ascii('A')
- 最近要搭建一个阿里云的LMAP环境,选了CentOS7来做搭建。1.ApacheCentos7默认已经安装httpd服务,只是没有启动。如果
- Django 教程Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Dja
- xhEditor简介xhEditor是一个基于jQuery开发的简单迷你并且高效的可视化HTML编辑器,基于网络访问并且兼容IE 6.0+,
- 零、前言python代码中配置文件是必不可少的内容。常见的配置文件格式有很多中:ini、yaml、xml、properties、txt、py
- 从python2.4版本开始,可以用subprocess这个模块来产生子进程,并连接到子进程的标准输入/输出/错误中去,还可以得到子进程的返
- 本文实例为大家分享了python多线程分块读取文件的具体代码,供大家参考,具体内容如下# _*_coding:utf-8_*_import
- 直接进入主题立方体每列颜色不同:# Import librariesimport matplotlib.pyplot as pltfrom
- 查询语句的优化是SQL效率优化的一个方式,可以通过优化sql语句来尽量使用已有的索引,避免全表扫描,从而提高查询效率。最近在对项目中的一些s
- 关键字:js验证表单大全,用JS控制表单提交 ,javascript提交表单:目录:1:js 字符串长度限制、判断字符长度 、js限制输入、
- 本文实例讲述了JavaScript简单实现的仿微博留言功能。分享给大家供大家参考,具体如下:<!DOCTYPE html><
- 有些朋友看到这个标题可能会有疑问,难道在视图中使用*符号还有何要注意的地方吗?对于这个问题,我们先不必回答,先看一下例子吧。 我这里,使用的
- 形参与实参以及位置参数 什么是形参和实参形参:即形式参数,函数定义时指定的可以接受的参数即为形参,比如定义函数时的max(a,b)函数中的a
- 实现一个柱状图,这个柱状图的高度在不停的刷新,效果如下:官网是没有动态刷新的示例的,由于需要我查看了其源码,并根据之前示例做出了动态柱状图的
- github主页导入:>>> from fuzzywuzzy import fuzz>>> from f
- 如下所示:import numpy as npimport codecs, json a = np.arange(10).reshape(2
- 之前我在《各类Excel表格批量合并问题的实现思路与案例》一文中演示了各种常见的表格合并的需求,但VBA复制粘贴的需求却没有演示,今天我演示
- 如果您是HTML的初学者,请您先自学HTML。因为DHTML是现有的HTML技术的一个综合,所以HTML语言对学习动态HTML是