在一个范围内生成唯一的随机数
鉴于能够使用 random.randint 生成一个范围内的随机数,任务就出现了生成唯一随机数列表。虽然迭代条件语句可以作为一种解决方案,但还有一种更优雅的方法可以有效地实现此结果。
随机采样
Python 的 random 模块专门提供了一个名为 Sample 的函数设计用于无需更换的采样。此函数采用总体(例如,数字列表)和样本大小作为参数,并返回从总体中随机选择的唯一元素的列表。
例如,生成 3 个唯一随机数的列表在 [1, 100] 范围内,可以使用以下代码:
import random population = range(1, 100) # Initialize the population sample_size = 3 # Set the sample size random_sample = random.sample(population, sample_size)
random_sample 现在将包含指定范围内的 3 个唯一随机数的列表
处理大小差异
需要注意的是,如果样本大小超过总体大小,样本将引发 ValueError。为了处理这种情况,可以使用 try-except 块来捕获异常并进行相应处理。
例如,要尝试从大小为 2 的总体中生成大小为 3 的样本,可以编写以下代码:
try: random.sample(range(1, 2), 3) except ValueError: print('Sample size exceeded population size.')
如果样本大小大于总体大小,此代码将打印一条信息性消息而不是崩溃。
以上是如何在 Python 中生成一定范围内的唯一随机数列表?的详细内容。更多信息请关注PHP中文网其他相关文章!