如何使用 radnom.choice 向字典添加百分比(带)权重?

How to add percentage (with) weights to the dict with radnom.choice?

我昨天也问过类似的问题,建议我使用权重,但他们通常使用列表,我如何使用字典来做到这一点?另外,欢迎其他解决方案!

我想做什么...我已经尝试过这种模式,但我想分配符号“+”出现的百分比。我发现执行此操作的方法与数字有关,我很难理解如何执行此操作。

这是我的代码...假设我想用符号“+”表示出现 20%,用符号“-”表示出现 80% 但仍然是随机分布。

from PIL import Image, ImageDraw
import operator, random

im = Image.new('RGBA', (2000, 2000), (0,0,0)) 
draw = ImageDraw.Draw(im)

operator = {
    '+': operator.add,
    '-': operator.sub
}
step = 50
w, h = im.size
for n in range (step-step,w+w,step):
    for x in range (step-step,h+h,step):
        z = random.choice(list(operator.keys()))
        line = draw.line((n+100,x,n,operator[z](x,100)), fill=(255,255,255), width=4)
im

提前致谢!

看看here

你的情况是:

[z] = random.choices(list(operator.keys()), weights=[0.2, 0.8])

[z] = random.choices(['+', '-'], weights=[0.2, 0.8])

注意 random.choices returns 是一个列表,所以我使用 [z] 将该列表的第一个元素解压到变量 z