百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

python random库使用

wptr33 2025-02-27 16:56 10 浏览

import random

random.random()    返回随机生成的一个浮点数,范围在0~1

random.randint(a,b)  生成a和b范围区间随机整数

random.uniform(a,b)    生成a和b范围区间随机浮点数

random.choice('str')   从序列中随机选取一个元素

random.randrange(a,b,step)  生成a~b之间固定间隔的随机整数

random.shuffle(list)   将列表的元素顺序打乱

random.sample('str',num)  多个字符中生成指定数量的随机字符,输出形式为列表

''.join(random,sample(str,num))   多个字符中选取指定数量的字符组成新字符串

''.join(random.sample(string.ascii_letters + string.digits, num)  从a-zA-Z0-9生成指定数量的随机字符

random.choices(population,weights,cum_weights,k)  从集群中随机选取k次数据,返回一个列表,可以设置权重(python3.6?新增)
population:集群。
weights:相对权重。
cum_weights:累加权重。
k:选取次数


代码块
import random
import string

# 返回0~1之间的随机浮点数
print(random.random())

# 返回1~10之间的随机整数
print(random.randint(1, 10))

# 返回1~10之间的随机浮点数
print(random.uniform(1, 10))

# 范围区间可以不是整数
print(random.uniform(1.1, 10.2))

# 从序列中随机选取一个元素
print(random.choice('tomorrow'))

# 生成从1到100之间的间隔为2的随机整数
print(random.randrange(1, 100, 2))

# 可以不指定步长,生成为1~100之间随机整数
print(random.randrange(1, 100))

# 将列表的元素顺序打乱
list_7 = [1, 2, 3, 4, 5, 6, 7]
random.shuffle(list_7)
print(list_7)

# 多个字符中生成指定数量的随机字符,输出为列表形式
print(random.sample('20200517', 3))

# 多个字符中选取指定数量的字符组成新字符串
print(''.join(random.sample(['a', 'b', 'c', 'd', 'e'], 3)))

print(''.join(random.sample('abcdefgh', 3)))

# 从a-zA-Z0-9生成指定数量的随机字符
rand_str = ''.join(random.sample(string.ascii_letters + string.digits, 7))
print(rand_str)

# 随机抽取字符串
print(random.choice(['1', '2', '3']))
print(random.choice('123'))


# 从集群中随机选取k次数据,返回一个列表,可以设置权重
list_7 = [1, 2, 3, 4, 5]

'''
population:集群。
weights:相对权重。
cum_weights:累加权重。
k:选取次数。
作用:从集群中随机选取k次数据,返回一个列表,可以设置权重。
注意:每次选取都不会影响原序列,每一次选取都是基于原序列。
'''

print(random.choices(list_7, k=10))
# 不设置权重,重复10次从列表中的各个成员中选取一个数输出,各个成员出现的概率基本持平
# 随机结果:[5, 2, 1, 3, 4, 5, 4, 2, 3, 4]


print(random.choices(list_7, weights=[1, 0, 0, 0, 0], k=10))
# 设置权重 根据权重大小输出,权重列表长度需要和列表长度一致
# 结果:[1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
# 固定结果,因为权重第一个设置为1,其他权重为0,权重1对应列表数字1,所以只会出现1


print(random.choices(list_7, weights=[1, 1, 1, 1, 1], k=10))
# 权重所有数值设置一样,各个成员出现的概率基本持平
# 随机结果:[2, 5, 1, 4, 3, 5, 1, 4, 3, 4]

print(random.choices(list_7, cum_weights=[1, 1, 1, 1, 1], k=10))

'''
参数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了。

'''

相关推荐

十年之重修Redis原理(redis重试机制)

弱小和无知并不是生存的障碍,傲慢才是。--------面试者...

Redis 中ZSET数据类型命令使用及对应场景总结

1.zadd添加元素zaddkeyscoremember...

redis总结(redis常用)

RedisTemplate封装的工具类packagehk.com.easyview.common.helper;importcom.alibaba.fastjson.JSONObject;...

配置热更新系统(如何实现热更新)

整体设计概览┌────────────┐┌────────────────┐┌────────────┐│配置后台服务│--写入-->│Red...

java高级用法之:调用本地方法的利器JNA

简介JAVA是可以调用本地方法的,官方提供的调用方式叫做JNI,全称叫做javanativeinterface。要想使用JNI,我们需要在JAVA代码中定义native方法,然后通过javah命令...

SpringBoot:如何优雅地进行响应数据封装、异常处理

背景越来越多的项目开始基于前后端分离的模式进行开发,这对后端接口的报文格式便有了一定的要求。通常,我们会采用JSON格式作为前后端交换数据格式,从而减少沟通成本等。...

Java中有了基本类型为什么还要有包装类型(封装类型)

Java中基本数据类型与包装类型有:...

java面向对象三大特性:封装、继承、多态——举例说明(转载)

概念封装:封装就是将客观的事物抽象成类,类中存在属于这个类的属性和方法。...

java 面向对象编程:封装、继承、多态

Java中的封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)是面向对象编程的三大基本概念。它们有助于提高代码的可重用性、可扩展性和可维护性。...

怎样解析java中的封装(怎样解析java中的封装文件)

1.解析java中的封装1.1以生活中的例子为例,打开电视机的时候你只需要按下开关键,电视机就会打开,我们通过这个操作我们可以去间接的对电视机里面的元器件进行亮屏和显示界面操作,具体怎么实现我们并不...

python 示例代码(python代码详解)

以下是35个python代码示例,涵盖了从基础到高级的各种应用场景。这些示例旨在帮助你学习和理解python编程的各个方面。1.Hello,World!#python...

python 进阶突破——内置模块(Standard Library)

Python提供了丰富的内置模块(StandardLibrary),无需安装即可直接使用。以下是一些常用的内置模块及其主要功能:1.文件与系统操作...

Python程序员如何调试和分析Python脚本程序?附代码实现

调试和分析Python脚本程序调试技术和分析技术在Python开发中发挥着重要作用。调试器可以设置条件断点,帮助程序员分析所有代码。而分析器可以运行程序,并提供运行时的详细信息,同时也能找出程序中的性...

python中,函数和方法异同点(python方法和函数的区别)

在Python中,函数(Function)...

Python入门基础命令详解(python基础入门教程)

以下是Python基本命令的详解指南,专为初学者设计,涵盖基础语法、常用操作和实用示例:Python基本命令详解:入门必备指南1.Python简介特点:简洁易读、跨平台、丰富的库支持...