0
点赞
收藏
分享

微信扫一扫

random随机模块


方法

描述

random.randint(a,b)

[a,b] 之间的整数

random.uniform(a,b)

[a,b] 之间的浮点数

random.choice(seq)

在序列中随机抽取

random.sample(population, num)

随机num个不重复的元素(结果是数组)

random.random()

[0.0,1.0) 之间的浮点数

random.shuffle(x[,random])

重新排序

random.seed(a=None)

生成随机种子,如果a=None ,则使用系统时间

li = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

一、​​random.choice​​随机选择一个值

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

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

结果:abcdefg其中任意一个字母,可能是c也可能是f…

二、​​random.choices​​ ​​随机选取一组数据​​

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了。

三、​​random.sample(序列, 数量)​​随机获取指定数目序列

从序列li中人随机选择3个数

random.sample(li, 3)

[1, 6, 2]

四、 ​​random.shuffle(序列)​​打乱顺序

此方法不能用变量接受, 直接打印原来列表名即可(有list的append相似)
random.shuffle(li)

[4, 9, 7, 3, 8, 6, 2, 1, 5, 0]

五、​​random.randint(开始值, 结束值)​​随机产生一个整数

random.randint(1, 10)  括号内为范围

7

六、​​random.random()​​ 随机产生浮点数

random.random()

0.9701649527708726


举报

相关推荐

0 条评论