如何使用 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
我昨天也问过类似的问题,建议我使用权重,但他们通常使用列表,我如何使用字典来做到这一点?另外,欢迎其他解决方案!
我想做什么...我已经尝试过这种模式,但我想分配符号“+”出现的百分比。我发现执行此操作的方法与数字有关,我很难理解如何执行此操作。
这是我的代码...假设我想用符号“+”表示出现 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