Python生成不重复随机数的两种实现方式

拾柒
拾柒
发布时间:2026-10-16| 5人浏览过
原创

本文介绍在Python中生成不重复随机数的两种方法。首先通过手动实现类似洗牌算法的逻辑,交换元素位置以选取指定数量的唯一值;其次推荐使用内置模块random中的sample函数,直接从一个列表中随机抽取n个不同元素。文章包含完整代码示例及注意事项,适用于需要去重随机选取的场景。

复制代码

基于交换算法的随机数生成

以下是第一种实现方式的代码示例:


import random


print 'N must >K else error'


n=int(raw_input("n="))


k=int(raw_input("k="))


result=[]


x=range(n)


for i in range(k):


t=random.randint(i,n-1)


temp=x[i]


x[i]=x[t]


x[t]=temp


result.append(x[i])


print result


raw_input('Inpuy AnyKey to exit')



使用random.sample简化操作

上述代码通过算法逻辑生成结果,实际上Python提供了更简便的方法。


可以使用random.sample(list, n)函数,该函数直接从列表list中随机选取n个不同的元素。


复制代码

以下是使用random.sample方法的代码示例:


import random


for i in range(4):


print random.sample(['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'], 7)


相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。