本文首发于我的个人博客:Sui Xin's Blog
原文:https://suixinblog.cn/2019/09/python-random.html
作者:Sui Xin
Python 的 random 库实现了各种分布的伪随机数生成。
整数
-
random.randrange(start, stop=None, step=1):从range(start, stop, step)返回一个随机选择的元素。stop与step可以缺省,stop缺省时返回range(start)中的一个随机元素; -
random.randint(a, b):返回一个[a, b]中的随机整数。
序列
-
random.choice(seq):从非空序列seq返回一个随机元素; -
random.shuffle(x):将序列x随机打乱位置; -
random.sample(population, k):从population中选择k个不重复的随机元素组成的序列,不保序。
实值
-
random.random():返回[0, 1)区间内的一个浮点数; -
random.uniform(a, b):返回a + (b-a) * random.random()。
其他
random.seed(a=None):设置随机种子。
random 库还可以支持生成很多分布的实值随机数。
以相同的顺序打乱两个序列
使用 zip 模块将两个序列打包,shuffle 后拆开即可。
import random
a = ["Bob", "Jack", "Tom", "Jarry"]
b = [1, 2, 3, 4]
map_position = list(zip(a, b))
random.shuffle(map_position)
a, b = zip(*map_position)
a, b = list(a), list(b)