首页 > 解决方案 > 一定范围内的随机列表

问题描述

我想生成一个随机列表,其中在 a 和 b 之间生成 n 个数字。但是,执行时,什么也没有出现。

def random_list(a,b,n):
    import random
    xs=[]
    x=random.randint(a,b)
    xs.append(x)
    while len(xs)==n:
        return xs

标签: pythonlistrandom

解决方案


试试这个(使用randint列表推导生成随机列表)

import random

def random_list(a,b,n):
    xs = [random.randint(a,b) for _ in range(n)]
    return xs

输出:

>>> print(random_list(1, 10, 4))
[6, 2, 6, 4]

>>> print(random_list(1, 10, 4))
[3, 9, 2, 1]

如果您希望保持while循环,您可以将您的代码重新安排为如下所示:

import random

def random_list(a,b,n):
    xs=[]
    while len(xs) < n:
        x = random.randint(a,b)
        xs.append(x)
    return xs

推荐阅读