python 从list中随机取值的方法
作者:诸葛老刘 发布时间:2021-10-06 04:08:11
标签:python,list,随机取值
第一种方法(推荐)
适用于随机取一个值, 返回一个值
import random
list1 = ['佛山', '南宁', '北海', '杭州', '南昌', '厦门', '温州']
a = random.choice(list1)
print(a)
# 返回一个值
第二种方法
适用于随机取一组值, 返回一个list
import random
list1 = ['佛山', '南宁', '北海', '杭州', '南昌', '厦门', '温州']
# 随机返回只有一个值的list
a = random.sample(list1, 1)
# 随机返回只有一个值的list
b = random.sample(list1, 3)
print(a)
print(b)
# 返回list
第三种方法(不推荐,效率太慢)
自写的方法
import random
list1 = ['佛山', '南宁', '北海', '杭州', '南昌', '厦门', '温州']
ln = len(list1)
a = list1[random.randint(0, ln)]
print(a)
第四种方法(特殊场景)
这里的特殊场景举例说明:
抽奖: 从10个人随机抽出1个有奖的, 按随机分配, 每个人的概率都是十分之一, 但是否可以在代码层面, 让某个人的概率更高些呢?
答案当然是可以的了
上码:
In [1]: import random
# 这里给李四个权重为1,看看有什么结果
In [2]: a = {"张三": 0, "李四":1, "王五":0, "赵七": 0, "钱八": 0}
# 取5次, 每次都是李四,
In [3]: random.choices(list(a.keys()), weights=list(a.values()), k=5)
Out[3]: ['李四', '李四', '李四', '李四', '李四']
# 取1次, 当然就是李四了
In [4]: random.choices(list(a.keys()), weights=list(a.values()), k=1)
Out[4]: ['李四']
# 改下权重:李四和赵七都为1
In [5]: a = {"张三": 0, "李四":1, "王五":0, "赵七": 1, "钱八": 0}
# 取5次,也就是李四和赵七两个人, 没有其它人什么事了
In [6]: random.choices(list(a.keys()), weights=list(a.values()), k=5)
Out[6]: ['李四', '李四', '李四', '赵七', '李四']
In [7]: random.choices(list(a.keys()), weights=list(a.values()), k=5)
Out[7]: ['赵七', '李四', '李四', '李四', '赵七']
In [8]: random.choices(list(a.keys()), weights=list(a.values()), k=5)
Out[8]: ['李四', '赵七', '李四', '李四', '赵七']
# 再改一下, 每个人的权重都不一样,
In [9]: a = {"张三": 2, "李四":1, "王五":3, "赵七": 1, "钱八": 4}
# 多执行几次, 会发现每个人都可能会出现, 只是出现的概率完全不一样了, 钱八出现次数最多.
In [10]: random.choices(list(a.keys()), weights=list(a.values()), k=2)
Out[10]: ['王五', '赵七']
In [11]: random.choices(list(a.keys()), weights=list(a.values()), k=2)
Out[11]: ['王五', '王五']
来源:https://blog.csdn.net/weixin_39791387/article/details/84958436


猜你喜欢
- Django auth 应用模块在设计开发任何一个站点的时候都需要有“用户”的概念,从用户的注册、登
- Python列表List(列表) 是 Python 中使用最频繁的数据类型。列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串
- 当你加入到一个项目,相关的CSS文件可能会看得你头昏眼花。时间一长,修改了哪些内容,增加了哪些内容,也都弄不清,维护成本相当的高。正好我们国
- //CLASS@Mr.Think*****getElementsByTagName function tag(name,elem){ if(
- mitmproxy有3中监听请求与响应的方式:mitmproxy控制台方式mitmdump与Python对接的方式mitmweb可视化方式前
- 随着因特网的发展,在网络环境中,数据库应用渐渐向操作简单、功能实用的方向发展。本文介绍如何利用ASP技术实现对数据库进行在线维护的方法,并给
- 在vs2005下用到gridview时,默认的情况下gridview控件会在生成的html代码中的style属性中加入border-coll
- 一、python中“::-1”代表什么?在Python中::-1表示将字符或数字倒序输出(也称【反转
- 1.如何定位并优化慢查询sqla.根据慢日志定位慢查询sqlSHOW VARIABLES LIKE '%query%' &
- 大家都知道一些论坛的标题有高亮显示功能,在这里我不讨论也不研究论坛普遍的实现方法,下面是我的实现方法:实现思路:把要高亮显示的标题加上特定标
- 前言相信每位家长都有所体会,因为要在孩子出生后两周内起个名字(需要办理出生证明了),估计很多人都像我一样,刚开始是很慌乱的,虽然感觉汉字非常
- 一、PIL的基本概念:PIL中所涉及的基本概念有如下几个:通道(bands)、模式(mode)、尺寸(size)、坐标系统(coordina
- 基本思路斑马线检测通过opencv图像处理来进行灰度值转换、高斯滤波去噪、阈值处理、腐蚀和膨胀后对图像进行轮廓检测,通过判断车辆和行人的位置
- 引言图形包括线条、圆形、椭圆形、多边形等。在skimage包中,绘制图形用的是draw模块,不要和绘制图像搞混了。1、画线条函数调用格式为:
- 本文实例讲述了Python工厂函数用法。分享给大家供大家参考,具体如下:参考了很多代码、别人的文章以及书籍,最后自己做了适合自己理解的一种理
- 前言在 Go 单元测试这个系列的第二部分 数据库的Mock测试 中我们介绍了用 go-sqlmock 给数据库的 CRUD 操作做Mock
- 本文定位:已将CPU历史数据存盘,等待可视化进行分析,可暂时没有思路。前面一篇文章(https://www.jb51.net/article
- 前言MySQL提供了众多功能强大、方便易用的函数。使用这些函数可以极大地提高用户对数据库的管理效率。MySQL中的函数包括数学函数、字符串函
- 本文实例为大家分享了python3连接MySQL数据库的具体代码,供大家参考,具体内容如下#python3连接MySQL实例import p
- 1.多态是指传入不同的对象,产生不同的结果多态指的是一类事物有多种形态(一个抽象类有多个子类,因而多态的概念依赖于继承)定义:多态是一种使用