使用While循环生成要追加的整数?

时间:2015-09-29 17:53:03

标签: python

我想要的是一个while循环运行并生成随机数量的int的随机列表。

import random

randAmount = random.randint(15,20)
randNumber = random.randint(2,5)
numbList = []

lookFor = 3

while len(numbList) < randAmount:
    numbList.append(randNumber)

我的输出:

[4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]

我可以做些什么才能让randNumber重复不同的数字?

注意:如果数字会重复,也没关系。

2 个答案:

答案 0 :(得分:5)

您只需拨打randint() 一次即可生成randNumber。如果你想生成不同的随机数,你需要在循环中继续调用它:

while len(numbList) < randAmount:
    numbList.append(random.randint(2,5))

您可以在此使用列表推导而不是while循环;

numbList = [random.randint(2, 5) for _ in range(random.randint(15, 20))]

后一种方法的快速演示:

>>> import random
>>> [random.randint(2, 5) for _ in range(random.randint(15, 20))]
[2, 5, 3, 5, 5, 2, 3, 4, 3, 4, 3, 2, 4, 3, 2, 5, 3]
>>> [random.randint(2, 5) for _ in range(random.randint(15, 20))]
[2, 2, 2, 5, 3, 5, 3, 4, 4, 3, 5, 3, 5, 5, 5]
>>> [random.randint(2, 5) for _ in range(random.randint(15, 20))]
[5, 2, 5, 2, 5, 5, 4, 5, 2, 4, 2, 2, 4, 3, 3, 3, 3, 4, 2]
>>> [random.randint(2, 5) for _ in range(random.randint(15, 20))]
[3, 5, 5, 3, 4, 2, 3, 2, 5, 3, 4, 4, 2, 5, 5, 4, 2, 4]

答案 1 :(得分:0)

将其设为函数而不是值。

randNumber = lambda: random.randint(2,5)

然后每次调用该函数。

numbList.append(randNumber())