python 从list中随机取值的方法

 更新时间:2020年11月16日 11:43:21   作者:诸葛老刘  
这篇文章主要介绍了python 从list中随机取值的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

第一种方法(推荐)

适用于随机取一个值, 返回一个值

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之Django(三)

    浅谈Python之Django(三)

    这篇文章主要介绍了Python3中的Django,小编觉得这篇文章写的还不错,需要的朋友们下面随着小编来一起学习学习吧,希望能够给你带来帮助
    2021-10-10
  • Python技巧分享之groupby基础用法详解

    Python技巧分享之groupby基础用法详解

    python中groupby函数主要的作用是进行数据的分组以及分组后地组内运算!本文将通过一些示例和大家详细讲讲groupby的基础用法,需要的可以参考一下
    2022-10-10
  • python列表数据增加和删除的具体实例

    python列表数据增加和删除的具体实例

    在本篇文章里小编给大家整理的是一篇关于python列表数据增加和删除的具体实例内容,有兴趣的朋友们可以学习下。
    2021-05-05
  • Python绘制分类图的方法

    Python绘制分类图的方法

    这篇文章主要为大家详细介绍了Python绘制分类图的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • Python Matplotlib库安装与基本作图示例

    Python Matplotlib库安装与基本作图示例

    这篇文章主要介绍了Python Matplotlib库安装与基本作图,简单分析了Python使用pip命令安装Matplotlib库及绘制三角函数曲线的相关操作技巧,需要的朋友可以参考下
    2019-01-01
  • Python调用ctypes使用C函数printf的方法

    Python调用ctypes使用C函数printf的方法

    这篇文章主要介绍了Python调用ctypes使用C函数printf,需要的朋友可以参考下
    2017-08-08
  • TensorFlow 滑动平均的示例代码

    TensorFlow 滑动平均的示例代码

    这篇文章主要介绍了TensorFlow 滑动平均的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Python读取分割压缩TXT文本文件实例

    Python读取分割压缩TXT文本文件实例

    今天小编就为大家分享一篇Python读取分割压缩TXT文本文件实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python中的pickle模块解析

    Python中的pickle模块解析

    这篇文章主要介绍了Python中的pickle模块解析,pickle 模块和 json 模块很像,都有序列化的功能,不过 pickle 模块更加局限一些只能对 python 使用,它可以对一个 python 对象结构的二进制序列化和反序列化,需要的朋友可以参考下
    2023-09-09
  • python利用datetime模块计算时间差

    python利用datetime模块计算时间差

    python中通过datetime模块可以很方便的计算两个时间的差,datetime的时间差单位可以是天、小时、秒,甚至是微秒,下面我们就来详细看下datetime的强大功能吧
    2015-08-08

最新评论