带有加权选项输出的random.choices

时间:2019-02-24 08:58:40

标签: python python-3.x

import random
a = 1
b = 2
c = 3

print(random.choices([a,b,c], [50,3,1]))

上面输出[1],[2]或[3]的代码可以解释为什么输出在其周围带有方括号吗?

2 个答案:

答案 0 :(得分:1)

因为random.choices(population, weights=None, *, cum_weights=None, k=1)返回k个元素的列表。在您的情况下,由于您没有传递<Content> <Button onPress={this.DatePicker.showDatePicker}> <DatePicker props}/> </Content> 的任何值,因此列表中只有一个项目。

如果要获取值而不是列表,则可以使用random.choice(seq),但在这种情况下,不能像k那样传递权重列表。

答案 1 :(得分:1)

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