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 13 Python
python学习基础之循环import及import过程
Apr 22 Python
详解用python写一个抽奖程序
May 10 Python
python发送多人邮件没有展示收件人问题的解决方法
Jun 21 Python
python删除文件夹下相同文件和无法打开的图片
Jul 16 Python
全面了解django的缓存机制及使用方法
Jul 22 Python
Python使用get_text()方法从大段html中提取文本的实例
Aug 27 Python
pandas 空数据处理方法详解
Nov 02 Python
PYQT5 vscode联合操作qtdesigner的方法
Mar 24 Python
Python高并发解决方案实现过程详解
Jul 31 Python
python基础之类属性和实例属性
Oct 24 Python
Python闭包的定义和使用方法
Apr 11 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和require的区别深入解析
2013/06/17 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
2016/06/15 PHP
Laravel模型间关系设置分表的方法示例
2018/04/21 PHP
PHP array_reverse() 函数原理及实例解析
2020/07/14 PHP
jtable列中自定义button示例代码
2013/11/21 Javascript
js和jquery中循环的退出和继续学习记录
2014/09/06 Javascript
Redis基本知识、安装、部署、配置笔记
2015/03/05 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
javascript实现拖放效果
2015/12/16 Javascript
浅析JavaScript中浏览器的兼容问题
2016/04/19 Javascript
javascript Promise简单学习使用方法小结
2016/05/17 Javascript
jquery 遍历数组 each 方法详解
2016/05/25 Javascript
node.js实现回调的方法示例
2017/03/01 Javascript
Vue 实用分页paging实例代码
2017/04/12 Javascript
微信小程序之批量上传并压缩图片的实例代码
2018/07/05 Javascript
解决layui数据表格Date日期格式的回显Object的问题
2019/09/19 Javascript
Vue.js暴露方法给WebView的使用操作
2020/09/07 Javascript
详解appium+python 启动一个app步骤
2017/12/20 Python
Django学习笔记之ORM基础教程
2018/03/27 Python
Python安装tar.gz格式文件方法详解
2020/01/19 Python
详解django中Template语言
2020/02/22 Python
浅析Python面向对象编程
2020/07/10 Python
办公室秘书岗位职责范本
2014/02/11 职场文书
委托协议书范本
2014/04/22 职场文书
信用社主任竞聘演讲稿
2014/05/23 职场文书
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
2014年专项整治工作总结
2014/11/17 职场文书
2015会计试用期工作总结
2014/12/12 职场文书
武夷山导游词
2015/02/03 职场文书
幼儿园中秋节活动总结
2015/03/23 职场文书
2015年组织委员工作总结
2015/04/23 职场文书
歌咏比赛主持词
2015/06/29 职场文书
特种设备安全管理制度
2015/08/06 职场文书
军训决心书范文
2015/09/22 职场文书
navicat 连接Ubuntu虚拟机的mysql的操作方法
2022/04/02 MySQL