python random 随机模块 choices函数 简介

random.choice()用于从非空序列中随机选择一个元素,而random.choices()则允许指定权重进行多次选择,返回一个列表。weights参数设置相对权重,cum_weights设置累加权重,影响元素被选中的概率。
摘要由CSDN通过智能技术生成

目录

1.random.choice(seq)函数

2.random.choices(population,weights=None,*,cum_weights=None,k=1)函数

结论


1.random.choice(seq)函数

非空序列中随机选取一个数据并返回,该序列可以是list、tuple、str、set

举例:

import random
print(random.choice('choice')) 

结果:choice其中任意一个字母,可能是c也可能是h...

2.random.choices(population,weights=None,*,cum_weights=None,k=1)函数

population:集群。

weights:相对权重。

cum_weights:累加权重。

k:选取次数。

作用:从集群中随机选取k次数据,返回一个列表,可以设置权重。

注意:每次选取都不会影响原序列,每一次选取都是基于原序列。

举例:

import random
a = [1,2,3,4,5]
print(random.choices(a,k=6))
解析:重复6次从列表a中的各个成员中选取一个数输出,各个成员出现概率基本持平。
结果:[5, 4, 5, 4, 1, 3](随机生成的)
print(random.choices(a,weights=[0,0,1,0,0],k=6))
解析:重复6次从列表a中提取3,最终得到[3, 3, 3, 3, 3, 3]
结果:[3, 3, 3, 3, 3, 3](固定结果)
print(random.choices(a,weights=[1,1,1,1,1],k=6))
解析:重复6次从列表a中的各个成员中选取一个数输出,各个成员出现概率基本持平。
结果:[5, 4, 3, 5, 4, 3](随机生成的)
print(random.choices(a,cum_weights=[1,1,1,1,1],k=6))
结果:[1, 1, 1, 1, 1, 1](固定结果)

可以自己多输出几次看看规律。

结论

参数weights设置相对权重,它的值是一个列表,设置之后,每一个成员被抽取到的概率就被确定了。
比如weights=[1,2,3,4,5],那么第一个成员的概率就是P=1/(1+2+3+4+5)=1/15。

cum_weights设置累加权重,Python会自动把相对权重转换为累加权重,即如果你直接给出累加权重,
那么就不需要
给出相对权重,且Python省略了一步执行。
比如weights=[1,2,3,4],那么cum_weights=[1,3,6,10]
这也就不难理解为什么cum_weights=[1,1,1,1,1]输出全是第一个成员1了。
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python中的random函数可以用来生成随机数。它可以用于生成随机整数、随机浮点数、随机字符串等。使用random函数需要先导入random模块,然后调用相应的函数即可。例如,生成一个到1之间的随机浮点数可以使用random.random()函数。生成一个指定范围内的随机整数可以使用random.randint()函数。生成一个指定长度的随机字符串可以使用random.choices()函数。总之,random函数Python中非常常用的函数之一,可以帮助我们快速生成随机数据。 ### 回答2: Python中的random函数是一个常用的随机数生成函数。它可以产生一些随机的数字、字符串或者序列。在Python中,可以通过import random来导入random库。下面我们将详细介绍Python中的random函数的用法。 1、产生随机整数 使用random库中的randint函数可以产生一个指定范围内的随机整数。例如,我们需要产生一个1-100之间的随机整数,可以运用以下代码: ```python import random print(random.randint(1,100)) ``` 2、产生随机小数 在Python中,random库中还提供了一个生成随机小数的函数——random()。这个函数可以生成一个0-1之间的随机小数。例如,我们需要产生一个随机小数,可以运用以下代码: ```python import random print(random.random()) ``` 3、产生随机整数序列 如果想要产生一个随机的整数序列,可以使用random.sample()函数。该函数需要传入两个参数:一个序列和所需的随机数数量n。该函数会返回一个由n个随机数组成的列表。 例如,我们需要在1-100之间产生10个不同的随机整数,可以运用以下代码: ```python import random print(random.sample(range(1, 101), 10)) ``` 4、将列表随机排序 对于一个列表,可以使用random.shuffle()函数将其随机排序。例如,我们想要对一个列表进行随机排序,可以运用以下代码: ```python import random mylist = [1, 2, 3, 4, 5] random.shuffle(mylist) print(mylist) ``` 5、从序列中随机选择 在Python中,可以使用random.choice()函数从一个序列中随机选择一个元素。例如,我们需要在一个列表中随机选择一个元素,可以运用以下代码: ```python import random mylist = [1, 2, 3, 4, 5] print(random.choice(mylist)) ``` 综上所述,Python中的random函数以其丰富的功能和灵活的应用方式,成为Python编程中不可缺少的一个功能。无论是需要生成随机整数、随机小数、随机整数序列或者从一个序列中随机选择一个元素,random库在Python中都能够胜任,并为开发者提供便利。 ### 回答3: Python中的random函数是一个非常重要的内置函数,用于生成随机数。它是一个伪随机数生成器,可以基于给定的种子产生随机数或者从系统时钟种子里选择种子。 生成随机数有很多种方法,Python中的random函数提供了以下几种方法: 1. random():该方法生成[0, 1) 随机浮点数。 2. randrange(start, stop, step):该方法生成从start到stop的范围内的随机整数。其中start和step为可选参数,且默认值为0和1。 3. randint(a, b):该方法生成a到b的范围内的随机整数。 4. choice(seq):该方法从序列seq中随机选择一个元素。 5. shuffle(seq):该方法随机打乱序列seq中的元素顺序。 6. sample(seq, k):该方法随机从seq序列中选择k个不重复的元素。 使用random函数生成的随机数在一定程度上是可预测的,因此,在一些安全要求较高的场景中不太适用。在这种情况下,应该使用Python中的一些安全的随机数生成器,如Crypto库中的Random模块。 综上所述,Python中的random函数是一个多功能的函数,能够产生多种类型的随机数,对于编写随机算法或者进行数据随机化处理等方面非常有用。当然,在使用时需要注意其随机性的可预测性,在安全要求较高的场景中需要使用更加安全的随机数生成器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值