本文首发于我的个人博客: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)
网友评论