全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1315|回复: 31

求助Python大佬!

[复制链接]
发表于 2020-5-13 14:22:07 | 显示全部楼层 |阅读模式
本帖最后由 你说的都对 于 2020-5-13 14:44 编辑

小弟想得到9千万以内所有的数字并随机写入一个txt中。
  1. import random
  2. f = open('C:\\Users\Administrator\Desktop\python\wd.txt', 'w')
  3. for x in random.sample(range(0, 90000000), 90000000):
  4.         x = x+1
  5.         f.write(str(x)+'\n')
  6. f.close()
复制代码

这样运行后,报错了
  1. Traceback (most recent call last):
  2.   File "C:\Users\Administrator\Desktop\python\sx.py", line 3, in <module>
  3.     for x in random.sample(range(0, 86583357), 86583357):
  4.   File "C:\Users\Administrator\AppData\Local\Programs\Python\Python38-32\lib\random.py", line 370, in sample
  5.     pool = list(population)
  6. MemoryError
复制代码

不懂英语,估计是内存不够吧。
请问怎么写能把1-90000000的不重复随机数写入一个txt啊
---------------------------我擦我知道原因了,我安装的竟然是尼玛32位的Python------------------------------
发表于 2020-5-13 14:45:20 | 显示全部楼层
1.内存越界了,用这个模块不行的
2. python 中, for 循环执行效率非常差


解决方法:调用
numpy random模块中的choice方法

需要置replace为False,使抽取的元素不能重复:

np.random.choice(90000000, 90000000,replace=false)
发表于 2020-5-13 15:46:16 | 显示全部楼层
试试这样写??
我也不知道这样查重并随机生成9千万个不同的随机数需要处理多少时间
试着跑了一下似乎没有问题,但是不知道要跑多久才能生成出来

不知道为啥没法提交代码,只好用文件形式提交了

suz.zip

329 Bytes, 下载次数: 18

cherbim 该用户已被删除
发表于 2020-5-13 14:39:34 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2020-5-13 14:23:30 | 显示全部楼层
http://www.99cankao.com/numbers/random-number-generator.php
发表于 2020-5-13 14:26:10 | 显示全部楼层
你先全部存为一个str,再一次性写入文件里啊
发表于 2020-5-13 14:32:00 | 显示全部楼层
这样会重复吧
 楼主| 发表于 2020-5-13 14:34:58 | 显示全部楼层
冻猫 发表于 2020-5-13 14:26
你先全部存为一个str,再一次性写入文件里啊

不行啊,刚试了,依旧内存出错
 楼主| 发表于 2020-5-13 14:36:43 | 显示全部楼层

不会啊
发表于 2020-5-13 14:36:44 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2020-5-13 14:38:01 | 显示全部楼层
mubaizi 发表于 2020-5-13 14:36
我试了一下 内存没出错 cpu风扇狂叫 还是等大佬解决吧

你内存大吧,我8G小内存,估计撑不住
发表于 2020-5-13 14:38:45 | 显示全部楼层
不懂,不会,可以帮顶。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-4-26 22:02 , Processed in 0.133345 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表