如何使用随机。兰迪在函数中?

2024-10-01 17:32:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一本字典:

units['pm']={'as': 2, 'ar': 5, 'de': 2, 'co': 2, 'asr': 7, 'he': 10}

然后我有一组简单的“如果语句”:

^{pr2}$

基本上这里发生的是随机。兰迪'选择50个数字,如果这些数字是1或2,在p1att上加一个1。有没有办法让整个事情变得更小或更短。也许在函数中没有使用if语句?在


Tags: 字典asde数字语句asr事情ar
3条回答

您可以使用列表理解:

p1att = sum([1 for _ in xrange(p1attackers) if (random.randint(1, 10) <= 2)])

编辑: 或者按照亚当·库什纳的建议,你不能使用它们:

^{pr2}$
for i in xrange(p1attackers):
    key = random.randint(1,10)  
    if key == 1:
        p1att += 1
    elif key == 2:
        p1att += 1

表示add 1 to p1att 50 times on a probability of 2/10

你可以简化成

^{pr2}$

你可以做的就是:

sum((random.randint(1,5) == 1) for i in xrange(50))

另外,对于numpy,我想你可以做些类似的事情:

np.random.binomial(50, .2)

相关问题 更多 >

    热门问题