python 从list中随机取值的方法


Posted in Python onNovember 16, 2020

第一种方法(推荐)

适用于随机取一个值, 返回一个值

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]: ['王五', '王五']

到此这篇关于python 从list中随机取值的方法的文章就介绍到这了,更多相关python list随机取值内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python运行的17个时新手常见错误小结
Aug 07 Python
使用python提取html文件中的特定数据的实现代码
Mar 24 Python
Python脚本实现网卡流量监控
Feb 14 Python
Python输出汉字字库及将文字转换为图片的方法
Jun 04 Python
Tensorflow中使用tfrecord方式读取数据的方法
Jun 19 Python
windows下cx_Freeze生成Python可执行程序的详细步骤
Oct 09 Python
python频繁写入文件时提速的方法
Jun 26 Python
对python特殊函数 __call__()的使用详解
Jul 02 Python
python爬虫神器Pyppeteer入门及使用
Jul 13 Python
树莓派极简安装OpenCv的方法步骤
Oct 10 Python
python爬虫爬取监控教务系统的思路详解
Jan 08 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
Aug 07 Python
python实现在列表中查找某个元素的下标示例
Nov 16 #Python
python如何获得list或numpy数组中最大元素对应的索引
Nov 16 #Python
Python实现列表索引批量删除的5种方法
Nov 16 #Python
Python 列表反转显示的四种方法
Nov 16 #Python
python 爬虫如何实现百度翻译
Nov 16 #Python
Python list和str互转的实现示例
Nov 16 #Python
python list的index()和find()的实现
Nov 16 #Python
You might like
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
YII2框架中查询生成器Query()的使用方法示例
2020/03/18 PHP
如何实现动态删除javascript函数
2007/05/27 Javascript
js 时间函数应用加、减、比较、格式转换的示例代码
2013/08/23 Javascript
ajax提交表单实现网页无刷新注册示例
2014/05/08 Javascript
判断复选框是否被选中的两种方法
2014/06/04 Javascript
JavaScript多并发问题如何处理
2015/10/28 Javascript
jQuery获取DOM节点实例分析(2种方式)
2015/12/15 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
详解jQuery中的deferred对象的使用(一)
2016/05/27 Javascript
JS轮播图中缓动函数的封装
2020/11/25 Javascript
ES6 Promise对象概念与用法分析
2017/04/01 Javascript
AngularJS实现的select二级联动下拉菜单功能示例
2017/10/25 Javascript
JavaScript实现的拼图算法分析
2019/02/13 Javascript
对于防止按钮重复点击的尝试详解
2019/04/22 Javascript
解决layui批量传值到后台操作时出现传值为空的问题
2019/09/28 Javascript
Vue实现多标签选择器
2019/11/28 Javascript
nodeJs的安装与npm全局环境变量的配置详解
2020/01/06 NodeJs
Postman如何实现参数化执行及断言处理
2020/07/28 Javascript
Node.js path模块,获取文件后缀名操作
2020/11/07 Javascript
跟老齐学Python之永远强大的函数
2014/09/14 Python
python运行时间的几种方法
2016/06/17 Python
关于pip的安装,更新,卸载模块以及使用方法(详解)
2017/05/19 Python
numpy.delete删除一列或多列的方法
2018/04/03 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
2020/05/12 Python
Python中pass的作用与使用教程
2020/11/13 Python
英国家喻户晓的折扣商场:TK Maxx
2017/05/26 全球购物
向全球直邮输送天然健康产品:iHerb.com
2020/05/03 全球购物
纯净、自信、100%的羊绒服装:360Cashmere
2021/02/20 全球购物
怎样创建、运行java程序
2014/08/01 面试题
写自荐信有哪些不宜?
2013/10/17 职场文书
2014最新党员违纪检讨书
2014/10/12 职场文书
先进个人评语大全
2015/01/04 职场文书
稽核岗位职责范本
2015/04/13 职场文书
Java获取字符串编码格式实现思路
2022/09/23 Java/Android