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抓取豆瓣图片并自动保存示例学习
Jan 10 Python
使用python 获取进程pid号的方法
Mar 10 Python
Python中dictionary items()系列函数的用法实例
Aug 21 Python
Python实现压缩和解压缩ZIP文件的方法分析
Sep 28 Python
Python 循环语句之 while,for语句详解
Apr 23 Python
python自动重试第三方包retrying模块的方法
Apr 24 Python
python在文本开头插入一行的实例
May 02 Python
django使用LDAP验证的方法示例
Dec 10 Python
Python基础之函数原理与应用实例详解
Jan 03 Python
python自然语言处理之字典树知识总结
Apr 25 Python
用python修改excel表某一列内容的操作方法
Jun 11 Python
python如何查找列表中元素的位置
May 30 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
3
2006/10/09 PHP
探讨fckeditor在Php中的配置详解
2013/06/08 PHP
JavaScript中的其他对象
2008/01/16 Javascript
javascript权威指南 学习笔记之null和undefined
2011/09/25 Javascript
自己写了一个展开和收起的多更能型的js效果
2013/03/05 Javascript
js猜数字小游戏的简单实现代码
2013/07/02 Javascript
Array栈方法和队列方法的特点说明
2014/01/24 Javascript
基于javascript简单实现对身份证校验
2021/01/25 Javascript
JS判断字符串字节数并截取长度的方法
2016/03/05 Javascript
AngularJs 60分钟入门基础教程
2016/04/03 Javascript
基于javascript实现数字英文验证码
2017/01/25 Javascript
JS实现含有中文字符串的友好截取功能分析
2017/03/13 Javascript
React学习笔记之条件渲染(一)
2017/07/02 Javascript
详解基于webpack2.x的vue2.x的多页面站点
2017/08/21 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
jQuery实现网页拼图游戏
2020/04/22 jQuery
kafka调试中遇到Connection to node -1 could not be established. Broker may not be available.
2019/09/17 Javascript
如何构建一个Vue插件并生成npm包
2020/10/26 Javascript
[41:08]2014 DOTA2国际邀请赛中国区预选赛 HGT VS NE
2014/05/22 DOTA
[02:14]2016国际邀请赛中国区预选赛Ehome晋级之路
2016/07/01 DOTA
[01:03:42]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[01:04:49]KG vs LGD 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python3.2中Print函数用法实例详解
2015/05/19 Python
在Python中用get()方法获取字典键值的教程
2015/05/21 Python
[原创]使用豆瓣提供的国内pypi源
2017/07/02 Python
django框架单表操作之增删改实例分析
2019/12/16 Python
利用OpenCV和Python实现查找图片差异
2019/12/19 Python
matplotlib之属性组合包(cycler)的使用
2021/02/24 Python
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
秘书行业自我鉴定范文
2013/12/30 职场文书
学习保证书范文
2014/04/30 职场文书
公司租房协议书范本
2014/10/08 职场文书
5.12护士节活动总结
2015/02/10 职场文书
2021年最新用于图像处理的Python库总结
2021/06/15 Python
SQL Server查询某个字段在哪些表中存在
2022/03/03 SQL Server
MYSQL如何查看进程和kill进程
2022/03/13 MySQL