本文首發(fā)于我的個人博客:Sui Xin's Blog
原文:https://suixinblog.cn/2019/09/python-random.html
作者:Sui Xin
Python 的 random
庫實現(xiàn)了各種分布的偽隨機(jī)數(shù)生成。
整數(shù)
-
random.randrange(start, stop=None, step=1)
:從range(start, stop, step)
返回一個隨機(jī)選擇的元素句葵。stop
與step
可以缺省,stop
缺省時返回range(start)
中的一個隨機(jī)元素割择; -
random.randint(a, b)
:返回一個[a, b]
中的隨機(jī)整數(shù)。
序列
-
random.choice(seq)
:從非空序列seq
返回一個隨機(jī)元素甩牺; -
random.shuffle(x)
:將序列x
隨機(jī)打亂位置赛惩; -
random.sample(population, k)
:從population
中選擇k
個不重復(fù)的隨機(jī)元素組成的序列,不保序显熏。
實值
-
random.random()
:返回[0, 1)
區(qū)間內(nèi)的一個浮點(diǎn)數(shù); -
random.uniform(a, b)
:返回a + (b-a) * random.random()
晒屎。
其他
random.seed(a=None)
:設(shè)置隨機(jī)種子喘蟆。
random
庫還可以支持生成很多分布的實值隨機(jī)數(shù)。
以相同的順序打亂兩個序列
使用 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)