python – 避免从随机生成重复值

python – 避免从随机生成重复值,第1张

概述我想生成随机数并将它们存储在列表中,如下所示: alist = [random.randint(0, 2 ** mypower - 1) for _ in range(total)] 我关注的是:我想在(0,2 ** mypower – 1)范围内生成总计= 4000万的值.如果mypower = 64,则alist的大小约为20GB(40M * 64 * 8),这对我的笔记本电脑内存来说非常大. 我想生成随机数并将它们存储在列表中,如下所示:

aList = [random.randint(0,2 ** mypower - 1) for _ in range(total)]

我关注的是:我想在(0,2 ** mypower – 1)范围内生成总计= 4000万的值.如果mypower = 64,则aList的大小约为20GB(40M * 64 * 8),这对我的笔记本电脑内存来说非常大.我有一个想法,迭代生成一大块值,一次说500万,并将它们保存到一个文件,这样我就不必一次生成所有40M值.我担心的是,如果我在循环中执行此 *** 作,则可以保证random.randint(0,2 ** mypower – 1)不会生成已经从上一次迭代生成的值吗?像这样的东西:

for i in range(num_of_chunks):            aList = [random.randint(0,2 ** mypower - 1) for _ in range(chunk)]            # save to file
解决方法 好吧,既然效率/速度无关紧要,我认为这样可行:

s = set()while len(s) < total:    s.add(random.randint(0,2 ** mypower - 1))aList = List(s)

由于集合中只能包含唯一元素,我认为这样可以很好地工作

总结

以上是内存溢出为你收集整理的python – 避免从随机生成重复值全部内容,希望文章能够帮你解决python – 避免从随机生成重复值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1193988.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存