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函数式编程
Jun 09 Python
Python文件去除注释的方法
May 25 Python
Python自定义主从分布式架构实例分析
Sep 19 Python
Python中用post、get方式提交数据的方法示例
Sep 22 Python
Python numpy 点数组去重的实例
Apr 18 Python
Python学习笔记之open()函数打开文件路径报错问题
Apr 28 Python
python3.6、opencv安装环境搭建过程(图文教程)
Nov 05 Python
如何基于python操作excel并获取内容
Dec 24 Python
Python使用configparser库读取配置文件
Feb 22 Python
简单了解Python多态与属性运行原理
Jun 15 Python
基于python爬取链家二手房信息代码示例
Oct 21 Python
Python Pygame实战在打砖块游戏的实现
Mar 17 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相对当前文件include其它文件的方法
2015/03/13 PHP
微信开发之网页授权获取用户信息(二)
2016/01/08 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
2020/04/26 PHP
Add Formatted Text to a Word Document
2007/06/15 Javascript
JQuery一种取同级值的方式(比如你在GridView中)
2012/03/15 Javascript
web性能优化之javascript性能调优
2012/12/28 Javascript
JavaScript数组常用操作技巧汇总
2014/11/17 Javascript
jquery中ajax跨域方法实例分析
2015/12/18 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
AngularJS基础 ng-dblclick 指令用法
2016/08/01 Javascript
JS获取和修改元素样式的实例代码
2016/08/06 Javascript
浅谈vue-lazyload实现的详细过程
2017/08/22 Javascript
vue双向数据绑定知识点总结
2018/04/18 Javascript
JavaScript this绑定过程深入详解
2018/12/07 Javascript
Vue 动态组件与 v-once 指令的实现
2019/02/12 Javascript
基于leaflet.js实现修改地图主题样式的流程分析
2020/05/15 Javascript
[05:04]DOTA2上海特级锦标赛主赛事第二日TOP10
2016/03/04 DOTA
Python 学习笔记
2008/12/27 Python
使用Python简单的实现树莓派的WEB控制
2016/02/18 Python
对python函数签名的方法详解
2019/01/22 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
2019/12/10 Python
python groupby 函数 as_index详解
2019/12/16 Python
读取nii或nii.gz文件中的信息即输出图像操作
2020/07/01 Python
解决运行django程序出错问题 'str'object has no attribute'_meta'
2020/07/15 Python
基于selenium及python实现下拉选项定位select
2020/07/22 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
Html5新标签datalist实现输入框与后台数据库数据的动态匹配
2017/05/18 HTML / CSS
以工厂直接定价的传奇性能:Ben Hogan Golf
2019/01/04 全球购物
100%羊绒:NakedCashmere
2020/08/26 全球购物
新手上路标语
2014/06/20 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
中学生自我评价2015
2015/03/03 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
python学习之panda数据分析核心支持库
2021/05/07 Python
Python Parser的用法
2021/05/12 Python
MySQL数据库简介与基本操作
2022/05/30 MySQL