基于python中的百分比的随机选择

时间:2020-11-07 19:02:35

标签: python

我创建了这个脚本

#!/c/Python/Python38-32/python

import sys
import random

copy = sys.argv[1]

p = random.choices( ["FeeSimple","Leasehold"], weights=(50, 50), k=int(copy))
print(p)

当我输入副本6时-有时结果是

["FeeSimple","FeeSimple","FeeSimple","FeeSimple","Leasehold","Leasehold"] OR 
["FeeSimple","FeeSimple","FeeSimple","FeeSimple","FeeSimple","Leasehold"] 

但是我想要生成其中三个作为“ FeeSimple”(50%),另一个作为“租赁权”(50%)

注意: 复制变量可以是1到百万之间的任意数字

1 个答案:

答案 0 :(得分:2)

如果我理解正确,那么您总是希望元素的比例为1:1,但是随机分配 。如果是这样,random.choices是适合该工作的错误工具,因为它的比率是随机的,尽管经过加权。取而代之的是,创建一个k大小的元素列表,然后用random.shuffle对其进行洗牌:

0x1f

示例输出:

import random

copy = 6
k = copy // 2
x = ["FeeSimple", "Leasehold"] * k
random.shuffle(x)
print(x)
相关问题