随机.选择加权选项输出


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
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] ) )  

最新更新