python如何有比重的随机取值 (要求代码简单高效)

python如何有比重的随机取值 (要求代码简单高效),第1张

python中没有你所期望的那种直接搞定的函数,都要自己改造一下的,你现在用的randomrandint(1,10)这种方法没什么问题,而且并不算笨方法,代码效率也不算低。

还有一种方法是利用random中的choice函数,randomchoice的功能是从序列中获取一个随机元素,编程思想是将要随机输出的元素按不同个数添加到一个列表中,然后利用randomchoice,从中随机选取一个。

=====================================================

代码如:

def randomchice(a,b,c,d,fa,fb,fc,fd):

import random

tl=[]

for i in range(0,fa):tlappend(a)

for i in range(0,fb):tlappend(b)

for i in range(0,fc):tlappend(c)

for i in range(0,fd):tlappend(d)

return randomchoice(tl)

使用时只需输入如:

print randomchice('zhangsan','lisi','wangwu','zhouqi',50,20,25,5,)

=====================================================

python所追求的不是速度效率而是代码效率,用python写的代码够简洁清晰就行,如果要求速度的话,那可以嵌入c语言,那样效率比python高至少100倍。

希望对你有所帮助。

有个近似方法,用randint(),因为randint()是闭区间

LARGE_INT = 1000000

myrandom = randint(0, LARGE_INT)10/LARGE_INT

python随机选取n个不同的数字的方法:

1、使用“import random”导入random包

2、通过for语句循环执行n次“randomrandint()”语句获取n个随机数并将随机数输入到列表中

n=10示例如下:

3、用set函数去重就可以了

完整代码:

更多Python知识,请关注:Python自学网!!

举例说明:从集合中随机获得10个数

1、定义一个列表集合iRandom = []

2、向iRandom中插入1-60,共60个数字

3、打乱列表顺序

4、截取列表前10个数,即为随机获取到的列表集合随机数

import random

iRandom = [] #定义随机数列表

listRandom = list(range(1,61)) #生成整数型1-60的列表组合

randomshuffle(listRandom)  #打乱列表顺序

iRandom = listRandom[0:10] #截取打乱后的前10个值,赋值给新列表iRandom

print('随机列表组合:',iRandom)

在8000到2000之间产生10个随机数,用到random包。

randomrandom()用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成随机数。

n <= b。如果 a <b, 则 b <= n <= a。用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,Python生成随机数。

扩展资料:

注意事项:

1、range (10000000)后,内存不释放的原因:python对整数对象做了缓存,新创建出来的整数对象的内存不会被释放,而是留着以后再次创建整数对象时继续使用。这样可以减少new *** 作,提高效率。

2、局部变量的访问速度,比全局变量、内建变量都要快,如果函数中,需要频繁使用某个全局变量或内建函数时,那么可以考虑先将这个全局变量或内建函数赋值给一个局部变量,后面代码直接访问这个局部变量、

3、虽然python是动态语言,但是在执行python代码前,也有编译的过程。平时看到的pyc文件就是python编译后的结果。

参考资料来源:百度百科-Python

答:

Python当中的random函数,生成一个在[0,1)范围之内的浮点数; Python当中的随机数模块都属于random模块,其中还有很多其他类型的随机数函数。比如randintuniform等,在如下的代码当中给出了注释;最后两次运行结果如下所示。

以上就是关于python如何有比重的随机取值 (要求代码简单高效)全部的内容,包括:python如何有比重的随机取值 (要求代码简单高效)、在python中,如何快速获得闭区间【0,1】的随机数。、python如何随机选取n个不同的数字等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10215782.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存