我创建了这个脚本
#!/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到百万之间的任意数字
答案 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)