分享

Python3.x中数据随机重排基本方法

 hdzgx 2019-12-27

list列表数据重排

使用random包中的shuffle()方法进行重排
注意shuffle()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。

import random
random.shuffle (lst)

参数
- lst–为列表

返回值
- 方法没有返回值 None

a = [[1,2,3,4,5],[2,3,4,5,6]]
aa = []
for i in a:
    ii = i[0:]
    random.shuffle(ii)
    aa.append(ii)
print('aa:',aa)
print('a:',a)

这里写图片描述

固定种子重排方式

random模块中的排序都是按照系统时间的最后一位当做种子进行生成随机数
设定随机种子方法

randseed = 3
random.seed(randseed)

此后得到的随机数都会以种子3确定随机数
如:执行random.randint(1,3)得到的第一个随机数都会是1,产生的随机数为固定顺序
注:如果每次单独执行一次随机数产生方式,得到的都会是同一个随机数,但是如果循环产生随机数列表,那么将会得到固定的随机数序列。

常见的random模块中随机数产生函数

  • random.randint
random.randint(1,10)

参数(start,stop),产生1至10之间的随机整数(int),产生的随机数包含1,10两个端点

  • random.randrange
random.randrange(start, stop, step)

参数:(start, stop, step)start为开始点(包含),stop为结束点(不包含),step为间隔默认为1
产生的为int整数类型随机数
例:random.randrange(1,11,2)相当于从[1,3,5,7,9]中随机产生随机数
这里写图片描述

每次产生随机数,都会以随机种子为基础固定的随机序列。

  • random.uniform
random.uniform(a,b)

参数:(start,stop),产生ab之间的随机浮点数(float),产生的随机数包含a,b两个端点
注:start与stop 不用考虑大小关系。

random.uniform(2.68,12.68)
random.uniform(12.68,2.68)

以上两种参数输入方式都是正确的。

  • random.choice
random.choice(seq)

参数:seq为list,元祖,字符串

random.choice([1, 6, 3, 7, 8, 13]) #list
random.choice('hello') #字符串
random.choice(['hello','world','welcome']) #字符串组成的list
random.choice((1, 2, 3)) #元组

例:random.choice('hello')随机产生h,e,l,l,o中的一个。
结果:
这里写图片描述
random.choice(['hello','world','welcome'])随机产生’hello’,’world’,’welcome’中的一个
结果:
这里写图片描述

  • random.sample
random.sample(p, k)

参数:p为序列,k为元素个数
从序列p中,随机选出k个元素生成新的序列
例:random.sample(['hello','world','welcome'],2)
这里写图片描述

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多