【问题标题】:random list within a certain limit一定范围内的随机列表
【发布时间】:2020-10-25 12:22:53
【问题描述】:

我想生成一个随机列表,其中生成 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

【问题讨论】:

  • 您可能想为循环执行while len(xs) != n:
  • 你的代码不应该有任何结果。您那里没有打印声明。
  • 打印声明不是强制性的,对吧?

标签: python list random


【解决方案1】:

试试这个(使用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

【讨论】:

    【解决方案2】:

    一个小的逻辑变化和小的代码移动应该可以解决它。

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

    正如其他人所提到的,如果您知道列表理解,请使用它们。这将使代码更加简洁。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-30
      • 2014-01-29
      • 2011-12-16
      • 1970-01-01
      • 2011-02-02
      • 1970-01-01
      相关资源
      最近更新 更多