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的socket编程入门教程
Apr 23 Python
python实现下载文件的三种方法
Feb 09 Python
简单易懂的python环境安装教程
Jul 13 Python
Python使用re模块正则提取字符串中括号内的内容示例
Jun 01 Python
Python走楼梯问题解决方法示例
Jul 25 Python
Python中is和==的区别详解
Nov 15 Python
python中嵌套函数的实操步骤
Feb 27 Python
python Tcp协议发送和接收信息的例子
Jul 22 Python
django 中QuerySet特性功能详解
Jul 25 Python
Django为窗体加上防机器人的验证码功能过程解析
Aug 14 Python
基于Python实现扑克牌面试题
Dec 11 Python
python制作一个简单的gui 数据库查询界面
Nov 19 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批量删除数据
2007/01/18 PHP
ajax+php控制所有后台函数调用
2015/07/15 PHP
wordpress网站转移到本地运行测试的方法
2017/03/15 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
javascript 放大镜 v1.0 基于Yui2 实现的放大镜效果
2010/03/08 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
2016/01/26 Javascript
jQ处理xml文件和xml字符串的方法(详解)
2016/11/22 Javascript
详解webpack3如何正确引用并使用jQuery库
2017/08/26 jQuery
JavaScript面向对象继承原理与实现方法分析
2018/08/09 Javascript
Vue项目报错:Uncaught SyntaxError: Unexpected token
2018/11/10 Javascript
vue2 拖动排序 vuedraggable组件的实现
2019/08/08 Javascript
javascript合并两个数组最简单的实现方法
2019/09/14 Javascript
JSONP 的原理、理解 与 实例分析
2020/05/16 Javascript
在Django的模型中执行原始SQL查询的方法
2015/07/21 Python
Python脚本实现Web漏洞扫描工具
2016/10/25 Python
python爬虫实战之最简单的网页爬虫教程
2017/08/13 Python
对变量赋值的理解--Pyton中让两个值互换的实现方法
2017/11/29 Python
一行代码让 Python 的运行速度提高100倍
2018/10/08 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
python 实现将多条曲线画在一幅图上的方法
2019/07/07 Python
Python的matplotlib绘图如何修改背景颜色的实现
2019/07/16 Python
Python 解析pymysql模块操作数据库的方法
2020/02/18 Python
Pandas把dataframe或series转换成list的方法
2020/06/14 Python
python实现简易版学生成绩管理系统
2020/06/22 Python
深入了解Python 变量作用域
2020/07/24 Python
python爬虫用scrapy获取影片的实例分析
2020/11/23 Python
Python读取pdf表格写入excel的方法
2021/01/22 Python
使用CSS实现阅读进度条
2017/02/27 HTML / CSS
详解CSS3 Media Queries中媒体属性的使用
2016/02/29 HTML / CSS
.TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute? ifconfig? netstat?)
2016/05/09 面试题
外语系毕业生自荐信范文
2013/12/16 职场文书
空中乘务员岗位职责
2014/03/08 职场文书
工作决心书
2014/03/11 职场文书
法人代表委托书
2014/04/04 职场文书
团队拓展训练感想
2015/08/07 职场文书
《杜鹃的婚约》OP主题曲「凸凹」无字幕影像公开
2022/04/08 日漫