我尝试创建一个生成器,它将查找1到m范围内的n个随机整数。下面的代码完全相同,但它有时会返回先前打印过的数字的两倍。有谁知道我怎么编辑它?另一件事,但更设计的是,我如何订购我的打印,以便数字有序?
import random
def hwset(m,n):
i=0
for i in range(0,n):
print random.randrange(1,m+1,1)
答案 0 :(得分:5)
如果您希望在1和n
之间的所有整数中生成m
个数字的样本,请将random.sample()
function与xrange()
对象一起使用(使用{{1如果您使用的是Python 3):
range()
如果您希望对这些数字进行排序,只需对结果进行排序:
def hwset(m, n):
return random.sample(xrange(1, m + 1), n)
演示:
sorted_hwset = sorted(hwset(m, n))