[英]random.choices with weighted options output
import random
a = 1
b = 2
c = 3
print(random.choices([a,b,c], [50,3,1]))
上面輸出[1],[2]或[3]的代碼可以解釋為什么輸出有方括號嗎?
因為random.choices(population, weights=None, *, cum_weights=None, k=1)
返回k個元素的列表。 在您的情況下,由於您沒有傳遞k
任何值,因此列表中只有一個項目。
如果要獲取一個值而不是一個列表,則可以使用random.choice(seq)
,但在這種情況下,您不能像random.choices()
那樣傳遞一個權重列表。
random.choices繪制一個可以在調用它時用k=..
指定的值的列表:
fourty = random.choices(range(10),k=40)
您可以使用指定概率的choices
方法通過索引將其獲得的單個值打印出來
print(random.choices([a,b,c], [50,3,1])) [0] # get the one single value from the result list
或者,您可以使用random.choice()提供可迭代的內容,以反映您的意願:
import random
a=1
b=2
c=3
# create an iterable that reflects your propabilies and draw 1 element from it
print(random.choice( [a]*50+[b]*3+[c] ) )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.