1.random.random()
隨機生成乙個[0,1)之間的浮點數。
2.random.randint(a,b)
隨機生成[a,b]範圍內乙個整數。
3.random.randrange(a,b,step)
不指定step,隨機生成[a,b)範圍內乙個整數。
指定step,step作為步長會進一步限制[a,b)的範圍,比如randrange(0,11,2)意即生成[0,11)範圍內的隨機偶數。
不指定a,則預設從0開始。
4.random.uniform(a,b)
產生[a,b]範圍內乙個隨機浮點數。
uniform()的a,b引數不需要遵循a<=b的規則,即a小b大也可以,此時生成[b,a]範圍內的隨機浮點數。但如果上面的三個方法採用這種方式就會產生typeerror或者valueeeeor錯誤。
5.random.choice(seq)
從非空序列中隨機選取乙個資料並帶回,該序列可以是list、tuple、str、set。
如果序列為空,則彈出indexerror錯誤。
import random
print(random.choice('biu')) #u
6.random.choices(population,weights=none,*,cum_weights=none,k=1)
python3.6版本新增。
population:集群。
weights:相對權重。
cum_weights:累加權重。
k:選取次數。
作用:從集群中隨機選取k次資料,返回乙個列表,可以設定權重。
注意每次選取都不會影響原序列,每一次選取都是基於原序列。
關於random.choices()函式我舉幾個例子:
import random
a = [1,2,3,4,5]
#1print(random.choices(a,k=5))
#2print(random.choices(a,weights=[0,0,1,0,0],k=5))
#3print(random.choices(a,weights=[1,1,1,1,1],k=5))
#4print(random.choices(a,cum_weights=[1,1,1,1,1],k=5))
對於 #1–#4 的每一條語句不妨各自寫乙個迴圈語句讓它輸出個十遍八遍的,你就足以看出用法了。
這裡我只提出執行結果和結論:
#1 : 重複輸出10次列表a中的各個成員出現概率基本持平。
#2 : 重複輸出10次每次輸出均得到[3,3,3,3,3]結果。
#3 : 重複輸出10次列表a中的各個成員出現概率基本持平。
#4 : 重複輸出10次每次輸出均得到[1,1,1,1,1]結果。
結論:
引數weights設定相對權重,它的值是乙個列表,設定之後,每乙個成員
被抽取到的概率就被確定了。
比如weights=[1,2,3,4,5],那麼第乙個成員的概率
就是p=1/(1+2+3+4+5)=1/15。
cum_weights設定累加權重,python會自動把相對權重轉換為
累加權重,即如果你直接給出累加權重,那麼就不需要
給出相對權重,且python省略了一步執行。
比如weights=[1,2,3,4],那麼cum_weights=[1,3,6,10]
這也就不難理解為什麼cum_weights=[1,1,1,1,1]輸出全是第乙個成員1了。
7.random.sample(population,k)
從集**opulation中選取k個元素,返回乙個列表,集群
可以是list、tuple、str、set。
與random.choices()的區別:乙個是選取k次,乙個是選取k個,
選取k次的相當於選取後又放回,選取k個則選取後不放回。
故random.sample()的k值不能超出集群的元素個數。
import random
a = ['ahh','hhh','zzz','emm']
print(random.sample(a,3))
#['hhh', 'zzz', 'ahh']
8.random.shuffle(lst)
隨機打亂序列lst的順序並重新排序,注意它無返回值,另外lst只能是乙個可變序列,且只支援有下標的序列,因此它也不適用於set,你最好只把它用在列表上。
9.random.seed(a=none,version=2)
設定隨機種子的,如果不設定隨機種子,則預設以系統時間作為隨機種子。一般用不上。
參考:
Python Random模組使用
參考python 2.7.13編寫,英文好的同學可以直接閱讀官方解釋。random模組實現了多種分布的偽隨機數分布器。random模組可以從範圍 range 內隨機選取乙個整數 從序列 sequence 中,選取乙個隨機的元素 對乙個列表 list 進行偽隨機排列,或偽隨機取樣。random模組也可...
python random隨機模組
author 12711 coding utf 8 import random x random.random 生成乙個 0 1 的隨機浮點數 x random.uniform 0,10 生成乙個指定範圍的隨機浮點數範圍為 0 10 x random.randrange 0,10,2 從指定範圍內,...
python random模組學習筆記
python中的random模組用於生成隨機數,下面是random的一些使用方式 匯入random模組 import random一 choice choice 隨機獲取乙個值 從0 9中隨機輸出乙個值 defchoice value1 random.choice range 10 value2 r...