使用python生成随机单词

Mav*_*ick 3 random python-2.7

我有一个单词列表

count=100    
list = ['apple','orange','mango']
Run Code Online (Sandbox Code Playgroud)

对于上面使用随机函数的计数,有可能选择40%的苹果时间,30%的橙色时间和30%的时间芒果?

对于前:

for the count=100, 40 times apple, 30 times orange and 30 times mango.
Run Code Online (Sandbox Code Playgroud)

这种选择必须随机发生

are*_*lek 5

基于关于生成具有指定权重的离散随机变量的问题的答案,您可以使用numpy.random.choicerandom.choice以下代码快20倍的代码:

from numpy.random import choice

sample = choice(['apple','orange','mango'], p=[0.4, 0.3, 0.3], size=1000000)

from collections import Counter
print(Counter(sample))
Run Code Online (Sandbox Code Playgroud)

输出:

Counter({'apple': 399778, 'orange': 300317, 'mango': 299905})
Run Code Online (Sandbox Code Playgroud)

更不用说它实际上比"以所需比例建立一个列表然后将其洗牌"更容易.

此外,洗牌总是产生正好 40%的苹果,30%,橙色和30%的芒果,这是不一样说"产生根据离散概率分布的百万水果样品"一样.后者是两种choice解决方案所做的(bisect也是).如上所述,使用时大约有 40%的苹果等numpy.