python 从list中随机取值的方法
作者:诸葛老刘 时间:2021-10-06 04:08:11
第一种方法(推荐)
适用于随机取一个值, 返回一个值
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]: ['王五', '王五']
来源:https://blog.csdn.net/weixin_39791387/article/details/84958436
标签:python,list,随机取值
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
python代码过长的换行方法
2022-12-25 07:19:59
详解Python各大聊天系统的屏蔽脏话功能原理
2021-02-23 13:53:44
![](https://img.aspxhome.com/file/2023/7/95307_0s.png)
关于DOM事件模型的两件事
2007-11-21 19:32:00
![](https://img.aspxhome.com/file/uploadpic/200711/21/20071121193935291.png)
三分钟学会Sql Server的复制功能[图]
2008-07-18 12:18:00
![](https://img.aspxhome.com/file/UploadPic/20087/18/2008718122618221s.gif)
ASP开发中有用的函数(function)集合(2)
2008-10-14 17:17:00
详解重置Django migration的常见方式
2022-10-30 13:21:17
防注入asp过滤sql特殊字符函数
2007-10-23 17:50:00
Linux系统下导出ORACLE数据库出现Exporting questionable statistics.错误 处理
2010-07-16 13:27:00
网页推广设计的几个要点
2011-01-10 20:41:00
![](https://img.aspxhome.com/file/UploadPic/20111/10/01-84s.jpg)
JScript RuntimeObject检测全局污染
2010-09-13 12:26:00
python 三边测量定位的实现代码
2023-02-03 08:37:31
![](https://img.aspxhome.com/file/2023/2/87912_0s.jpg)
python通配符之glob模块的使用详解
2021-07-16 23:13:18
python 匿名函数与三元运算学习笔记
2023-04-01 16:03:48
FrontPage XP设计教程2——网页的编辑
2008-10-11 12:16:00
![](https://img.aspxhome.com/file/UploadPic/200810/17/20081017121938712s.jpg)
python基于opencv实现人脸识别
2021-10-15 12:49:16
![](https://img.aspxhome.com/file/2023/8/68468_0s.jpg)
Python 多线程爬取案例
2022-11-17 16:02:06
![](https://img.aspxhome.com/file/2023/6/90546_0s.png)
Python Datetime模块和Calendar模块用法实例分析
2022-08-05 10:23:46
Bootstrap实现渐变顶部固定自适应导航栏
2023-08-23 00:52:40
![](https://img.aspxhome.com/file/2023/8/56078_0s.png)
SQL的小常识, 备忘之用, 慢慢补充.
2011-11-03 17:19:45
从8个方面优化ASP代码
2007-09-16 18:01:00