Python生成不重复随机数的两种实现方式
本文介绍在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)
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













