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,随机取值
0
投稿

猜你喜欢

  • python代码过长的换行方法

    2022-12-25 07:19:59
  • 详解Python各大聊天系统的屏蔽脏话功能原理

    2021-02-23 13:53:44
  • 关于DOM事件模型的两件事

    2007-11-21 19:32:00
  • 三分钟学会Sql Server的复制功能[图]

    2008-07-18 12:18:00
  • 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
  • JScript RuntimeObject检测全局污染

    2010-09-13 12:26:00
  • python 三边测量定位的实现代码

    2023-02-03 08:37:31
  • python通配符之glob模块的使用详解

    2021-07-16 23:13:18
  • python 匿名函数与三元运算学习笔记

    2023-04-01 16:03:48
  • FrontPage XP设计教程2——网页的编辑

    2008-10-11 12:16:00
  • python基于opencv实现人脸识别

    2021-10-15 12:49:16
  • Python 多线程爬取案例

    2022-11-17 16:02:06
  • Python Datetime模块和Calendar模块用法实例分析

    2022-08-05 10:23:46
  • Bootstrap实现渐变顶部固定自适应导航栏

    2023-08-23 00:52:40
  • SQL的小常识, 备忘之用, 慢慢补充.

    2011-11-03 17:19:45
  • 从8个方面优化ASP代码

    2007-09-16 18:01:00
  • asp之家 网络编程 m.aspxhome.com