从特定范围生成一组已排序的随机数

Pav*_*gic 6 python random generator

我想生成一组x个唯一的随机数,并在Python中对它们进行排序.例如:range(1000,10000)x = 100

我已经想出了随机导入并使用random.randrange方法,然后循环获取100个随机数,最后对它们进行排序.

但是,我不知道如何获得唯一的数字(这样它们不会重复) - 我应该验证每个循环吗?或者还有其他更简单的方法吗?我应该如何排序呢?

谢谢你们!

Vol*_*ity 10

使用 random.sample

numbers = random.sample(xrange(1000, 10000), 100)  # or `range` in Python 3
Run Code Online (Sandbox Code Playgroud)

排序部分很容易 - 使用该list.sort方法.

numbers.sort()
Run Code Online (Sandbox Code Playgroud)

默认情况下,这会将它从最小的数字排序到最大的数字,但它需要一个可选的key参数来确定对其进行排序的内容.

还有一个sorted函数不会就地修改列表,而是返回一个已排序的列表.

numbers_sorted = sorted(numbers)
Run Code Online (Sandbox Code Playgroud)

这也有一个可选key参数.