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基于PycURL实现POST的方法
Jul 25 Python
浅谈Python基础之I/O模型
May 11 Python
Python实现发送与接收邮件的方法详解
Mar 28 Python
python 将list转成字符串,中间用符号分隔的方法
Oct 23 Python
对pandas的行列名更改与数据选择详解
Nov 12 Python
对Python _取log的几种方式小结
Jul 25 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
Aug 12 Python
Python实现直播推流效果
Nov 26 Python
python字符串反转的四种方法详解
Dec 02 Python
python连接PostgreSQL过程解析
Feb 09 Python
通过代码实例解析Pytest运行流程
Aug 20 Python
Python requests接口测试实现代码
Sep 08 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
php获取文章内容第一张图片的方法示例
2017/07/03 PHP
Firefox outerHTML实现代码
2009/06/04 Javascript
js 与或运算符 || && 妙用
2009/12/09 Javascript
JavaScript可否多线程? 深入理解JavaScript定时机制
2012/05/23 Javascript
div当滚动到页面顶部的时候固定在顶部实例代码
2013/05/27 Javascript
javascript获取web应用根目录的方法
2014/02/12 Javascript
jquery退出each循环的写法
2014/02/26 Javascript
jQuery中trigger()方法用法实例
2015/01/19 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
2016/02/15 Javascript
微信小程序中单位rpx和rem的使用
2016/12/06 Javascript
微信小程序 JS动态修改样式的实现代码
2017/02/10 Javascript
JavaScript中双符号的运算详解
2017/03/12 Javascript
jQuery插件HighCharts实现气泡图效果示例【附demo源码】
2017/03/13 Javascript
vue实现全选和反选功能
2017/08/31 Javascript
Angular弹出模态框的两种方式
2017/10/19 Javascript
微信小程序实现给嵌套template模板传递数据的方式总结
2017/12/18 Javascript
Vue监听页面刷新和关闭功能
2019/06/20 Javascript
微信小程序实现Swiper轮播图效果
2019/11/22 Javascript
基于JavaScript获取url参数2种方法
2020/04/17 Javascript
利用Python的Django框架生成PDF文件的教程
2015/07/22 Python
python递归删除指定目录及其所有内容的方法
2017/01/13 Python
python Selenium 库的使用技巧
2020/10/16 Python
使用 HTML5 Canvas 制作水波纹效果点击图片就会触发
2014/09/15 HTML / CSS
英国DIY汽车维修配件网站:DIY Car Service Parts
2019/08/30 全球购物
台湾三立电视电商平台:电电购
2019/09/09 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
2013/07/30 面试题
请说出以下代码输出什么
2013/08/30 面试题
军训鉴定表自我鉴定
2014/02/13 职场文书
材料化学专业求职信
2014/07/15 职场文书
三好学生先进事迹材料
2014/08/28 职场文书
单位单身证明样本
2014/10/11 职场文书
党的群众路线教育实践活动领导班子整改方案
2014/10/25 职场文书
优秀班集体事迹材料
2014/12/25 职场文书
幼儿园亲子活动通知
2015/04/24 职场文书
国庆阅兵观后感
2015/06/15 职场文书
MySQL的InnoDB存储引擎的数据页结构详解
2022/03/03 MySQL