鱼C论坛

 找回密码
 立即注册
查看: 1001|回复: 4

md5_list.append(line_list[0]) 在循环中的列表增加数据越来越多,多到占满内存

[复制链接]
发表于 2019-7-8 11:53:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 luoyuzimo 于 2019-7-8 14:13 编辑

def find_same_md5(md5_result):
    global md5_end
    while True:
        line = md5_result.__next__()
        # print("line为: %s" % line)
        # print(type(line))
        line_list = line.split('./', 1)
        # print("切出结果为:%s" % line_list)
        # print(type(line_list))
        if line_list:
            if len(line_list) == 2 and len(line_list[0].strip()) == 32 and line_list[1].endswith(".jpeg"):
                if line_list[0] in md5_list:
                    image_path = line_list[1]
                    q.put(image_path)
                else:
                    md5_list.append(line_list[0])                                  ---如果append的数据越来越大,会大到把内存占完,这种有没有办法解决?



md5_result 数据是大量的超过100万的图片的md5值和图片的存放路径,类似这种 ce4ac4559959bd71691a3952049a37ee  ./images-0/fc2b2a88a2ba4000aa387cbf0a3c6ed2.jpeg
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-7-8 12:27:13 | 显示全部楼层
我不知道你的代码是干什么用的,如果你列表里的元素不需要一次性全用,而是一部分一部分的使用的话,你可以了解下yield生成器。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-8 14:10:37 | 显示全部楼层
新手·ing 发表于 2019-7-8 12:27
我不知道你的代码是干什么用的,如果你列表里的元素不需要一次性全用,而是一部分一部分的使用的话,你可以 ...

是需要一次性全部使用的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-8 15:23:13 | 显示全部楼层
luoyuzimo 发表于 2019-7-8 14:10
是需要一次性全部使用的

换一种数据结构或者换一个语言
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-8 17:03:30 From FishC Mobile | 显示全部楼层
考虑更换思路
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-16 18:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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