
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 – 避免从随机生成重复值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)