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

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

本文介绍在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 相关产品和应用

全部下载

专题列表