我有一个像
这样的清单L = ["bus", "bike"]
我想随机打印列表中的项目
for i in range(10):
print "Customer %d uses the %s" % (i, random.choice(L))
例如,如果我想要打印"bus"
6次和"bike"
4次,有没有办法在Python中执行此操作?
答案 0 :(得分:3)
创建一个包含所需分发的列表并将其随机播放:
l = 6*[0] + 4*[1]
random.shuffle(l)
for i in l:
print(L[i])
答案 1 :(得分:0)
稍微扩展我的评论(并且抱歉有点偏离主题,因为我不会在Python上解释,尤其不是random.choice()
这里),你从一个“原始”开始,即一些{{ 3}}可以使用各种random variable轻松生成。
让我们假设这个原语是“单位区间[0,1]上的均匀分布”,我们用X表示这个。[1]
你需要的是pseudo-random number generators,其中p = 0.6,即在两个选择中,一个应该被分配概率0.6,这意味着另一个给出0.4
这是一个简单的方法,称为Bernoulli distribution。它很简单如下:
Generate a value x of X using the "primitive" PRNG;
Test whether this x is lower than 0.6:
If it is, output "bus"
Otherwise, output "bike"
End
这是广泛的拒绝方法的基本例子。这是一个练习,看看这与这篇文章中建议的其他答案(或与之相反)提示(提示:它们与acceptance-rejection method有什么关系?)。
[1]顺便说一句,这可以通过random.random()
在Python中完成。
随意修改主题;)
答案 2 :(得分:-1)
import random
l = ['bus', 'bus', 'bus', 'bus', 'bus', 'bus', 'bike', 'bike', 'bike', 'bike']
for i in range(len(l)):
random.shuffle(l)
print l[0]
l.pop(0)