python如何取随机数且不重复

python如何取随机数且不重复

作者:Joshua Lee发布时间:2026-01-14阅读时长:0 分钟阅读次数:8

用户关注问题

Q
如何使用Python生成一组互不重复的随机数?

我想在Python中生成一组随机数,并且保证这些数字之间没有重复,该怎么做?

A

利用random.sample函数生成唯一随机数

Python内置的random模块中有一个sample函数,可以从指定序列中随机选取指定数量的元素,且不会重复。比如,random.sample(range(1, 100), 10)会从1到99之间随机选取10个不重复的整数。

Q
怎样避免用random.randint生成的随机数出现重复?

我使用random.randint生成随机数时发现会有重复,如何避免这种情况?

A

使用集合记录已生成的数字避免重复

random.randint本身可能会产生重复数,需要自己维护一个集合来存储已经生成的随机数,每次生成后检测是否重复,直到获取足够数量的不重复随机数。不过这种方式效率不如random.sample。

Q
Python中生成大量不重复随机数时怎么优化性能?

如果我要生成成千上万的不重复随机数,该用什么方法高效实现?

A

借助random.sample和范围数据结构提高效率

对于大批量不重复随机数,random.sample在底层实现是高效的,直接调用random.sample(range(start, end), n)即可快速获得不重复随机数集合,也避免了重复检查的开销。