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

Cas*_*sey -2 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)
Run Code Online (Sandbox Code Playgroud)

我的输出:

[4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]
Run Code Online (Sandbox Code Playgroud)

为了randNumber重复不同的数字,我该怎么办?

注意:如果数字重复可以.

Mar*_*ers 5

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

while len(numbList) < randAmount:
    numbList.append(random.randint(2,5))
Run Code Online (Sandbox Code Playgroud)

你可以while在这里使用列表理解而不是循环;

numbList = [random.randint(2, 5) for _ in range(random.randint(15, 20))]
Run Code Online (Sandbox Code Playgroud)

快速演示后一种方法:

>>> 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]
Run Code Online (Sandbox Code Playgroud)