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 multiprocessing.Manager介绍和实例(进程间共享数据)
Nov 21 Python
Flask框架的学习指南之开发环境搭建
Nov 20 Python
对python中字典keys,values,items的使用详解
Feb 03 Python
Python 窗体(tkinter)按钮 位置实例
Jun 13 Python
pandas的to_datetime时间转换使用及学习心得
Aug 11 Python
python+rsync精确同步指定格式文件
Aug 29 Python
python 函数的缺省参数使用注意事项分析
Sep 17 Python
Python数据分析pandas模块用法实例详解
Nov 20 Python
使用tqdm显示Python代码执行进度功能
Dec 08 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
Mar 06 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
Jul 03 Python
Python还能这么玩之用Python修改了班花的开机密码
Jun 04 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往XML中添加节点的方法
2015/03/12 PHP
PHP定时执行任务的3种方法详解
2015/12/21 PHP
总结一些js自定义的函数
2006/08/05 Javascript
javascript创建createXmlHttpRequest对象示例代码
2014/02/10 Javascript
js获取字符串最后一位方法汇总
2014/11/13 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
JS访问DOM节点方法详解
2016/11/29 Javascript
微信小程序 参数传递实例代码
2017/03/20 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
2017/10/31 Javascript
JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例
2019/11/19 Javascript
这样回答继承可能面试官更满意
2019/12/10 Javascript
Vue使用预渲染代替SSR的方法
2020/07/02 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
2020/11/13 Javascript
[47:55]Ti4第二日主赛事败者组 NaVi vs EG 1
2014/07/20 DOTA
[05:06]2017亚洲邀请赛DAC回顾片
2017/04/19 DOTA
python求crc32值的方法
2014/10/05 Python
Python3 能振兴 Python的原因分析
2014/11/28 Python
python 网络编程常用代码段
2016/08/28 Python
MySQL适配器PyMySQL详解
2017/09/20 Python
Django中使用haystack+whoosh实现搜索功能
2019/10/08 Python
python查看数据类型的方法
2019/10/12 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
2020/04/08 Python
Numpy一维线性插值函数的用法
2020/04/22 Python
Keras 使用 Lambda层详解
2020/06/10 Python
如何利用Python写个坦克大战
2020/11/18 Python
简单介绍CSS3中Media Query的使用
2015/07/07 HTML / CSS
几个解决兼容IE6\7\8不支持html5标签的几个方法
2013/01/07 HTML / CSS
C语言50道问题
2014/10/23 面试题
String s = new String(“xyz”);创建了几个String Object?
2015/08/05 面试题
开办大学饮食联盟创业计划书
2014/01/29 职场文书
副护士长竞聘演讲稿
2014/04/30 职场文书
班级文化建设标语
2014/06/23 职场文书
Python中for后接else的语法使用
2021/05/18 Python
教你怎么用Python生成九宫格照片
2021/05/20 Python
sql注入教程之类型以及提交注入
2021/08/02 MySQL
浅谈Python3中datetime不同时区转换介绍与踩坑
2021/08/02 Python