簡體   English   中英

帶有加權選項輸出的random.choices

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM