我想要的是一个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
重复不同的数字?
注意:如果数字会重复,也没关系。
答案 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())