在python带权重的列表中随机取值的方法

yipeiwu_com6年前Python基础

1 random.choice

python random模块的choice方法随机选择某个元素

foo = ['a', 'b', 'c', 'd', 'e']
from random import choice
print choice(foo)

2 random.sample

使用python random模块的sample函数从列表中随机选择一组元素

list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
slice = random.sample(list, 5) #从list中随机获取5个元素,作为一个片断返回 
print slice 
print list #原有序列并没有改变。

3 python带权重的随机取值

import random
def random_weight(weight_data):
  total = sum(weight_data.values())  # 权重求和
  ra = random.uniform(0, total)  # 在0与权重和之前获取一个随机数 
  curr_sum = 0
  ret = None
  keys = weight_data.iterkeys()  # 使用Python2.x中的iterkeys
#   keys = weight_data.keys()    # 使用Python3.x中的keys
  for k in keys:
    curr_sum += weight_data[k]       # 在遍历中,累加当前权重值
    if ra <= curr_sum:     # 当随机数<=当前权重和时,返回权重key
      ret = k
      break
  return ret
weight_data = {'a': 10, 'b': 15, 'c': 50}
random_weight(weight_data)

以上这篇在python带权重的列表中随机取值的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Django 浅谈根据配置生成SQL语句的问题

想要根据django中的模型和配置生成SQL语句,需要先进行一定的设置: 首先需要在你的app文件夹中进入setting.py文件,里面有一个DATABASES,进行设置数据库的配置信息...

python实现复制大量文件功能

本文实例为大家分享了python实现复制大量文件的具体代码,供大家参考,具体内容如下 本来是去项目公司拷数据,结果去了发现有500G,靠系统的复制功能怕是得好几个小时,于是回来学一手操作...

Django 实现下载文件功能的示例

基于Django建立的网站,如果提供文件下载功能,最简单的方式莫过于将静态文件交给Nginx等处理,但有些时候,由于网站本身逻辑,需要通过Django提供下载功能,如页面数据导出功能(下...

深入浅析Python中的迭代器

深入浅析Python中的迭代器

目录结构: contents structure [-] 在开始文章之前,先贴上一张Iterable、Iterator与Generator之间的关系图:   1. Itera...

Python实现的手机号归属地相关信息查询功能示例

本文实例讲述了Python实现的手机号归属地相关信息查询功能。分享给大家供大家参考,具体如下: 根据指定的手机号码,查询其归属地等相关信息,Python实现: 手机号文件:test.tx...