Ame*_*ite 3 python random list python-3.x
我有一个清单:
decisions = ['yes', 'no', 'unknown']
Run Code Online (Sandbox Code Playgroud)
我使用此列表写入文件:
for x in range(0, 100):
file.write(random.choice(decisions))
Run Code Online (Sandbox Code Playgroud)
什么是最有效的方法来确保70%的价值观都像"未知"?
我想要一定程度的随机性,但也希望确保写入文件的70个值是某种类型.我计划从用户那里获得这个百分比,这样它就可以改变每次运行.
如果我有另一个更大的列表,并希望确保唯一性(没有重复值,但也随机排序)什么是最好的方法?
如果您使用NumPy是一个选项,那么实现起来非常简单:
np.random.choice(['yes', 'no', 'unknown'], p=[0.15, 0.15, 0.7])
Run Code Online (Sandbox Code Playgroud)
第二个数组p求和为1,表示选择第一个数组中相应条目的概率.
以上将确保每次选择"未知"的概率为70%.
如果你想选择100与正好 70"未知"的条目和30"是"或"否"的选择:
hundred_choices = ['unknown']*70 + [random.choice(['yes', 'no']) for _ in range(30)]
Run Code Online (Sandbox Code Playgroud)
...然后洗牌hundred_choices用random.shuffle.