使用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(1,10)
参数(start,stop)
,产生1至10之间的随机整数(int),产生的随机数包含1,10两个端点
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(a,b)
参数:(start,stop)
,产生a
至b
之间的随机浮点数(float),产生的随机数包含a
,b
两个端点
注:start与stop 不用考虑大小关系。
random.uniform(2.68,12.68)
random.uniform(12.68,2.68)
以上两种参数输入方式都是正确的。
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(p, k)
参数:p
为序列,k
为元素个数
从序列p
中,随机选出k
个元素生成新的序列
例:random.sample(['hello','world','welcome'],2)