【发布时间】:2015-03-10 19:36:14
【问题描述】:
创建随机数列表的标准方法是:
def generateList(n):
randlist = []
for i in range(n):
randlist.append(random.randint(1,9))
return randlist
不过,我最近偶然发现了random.sample,它更紧凑:
def generateList(n):
return random.sample(range(1, 10), n)
但是如果n 大于 10,这会导致错误。所以,我的问题是,是否存在一个内置函数可以完全按照我的意图执行而不会出错?如果没有,是否至少有比第一个摘录更有效的替代方案(考虑到n 可能非常大)?
【问题讨论】:
-
您误解了
random.sample:请注意,随机列表中的任何数字都不会出现两次。generateList的较短版本是lambda n: [randint(1,9) for _ in range(n)]。