首页 > 解决方案 > 有没有办法创建一个适用于一组项目的列表理解函数,移动到程序的下一部分,然后重复

问题描述

作为背景,这是我为一堂课制作的暴力密码破解程序。我的程序现在的问题是内存。我正在使用 itertools 的产品功能。创建一个和我一样大的列表已经关闭了我尝试过的每台计算机。如何创建一个将列表拆分为设置块并摆脱旧的已经散列并检查可能的密码的函数?我尝试使用简单的分块代码,但无法解决问题。

def main():
start1 = time.time()
totalLines = [0, 1, 2, 3, 4, 5, 6, 7]
correctHashes = readFile()
for numbers in range(1, 9, 1):
    normal = ["".join(item) for item in itertools.product(totalList, repeat=numbers)]
    passwords = [hashlib.md5(object1.encode()).hexdigest() for object1 in normal]
    for number in totalLines:
        for num in range(0, len(passwords)):
            if passwords[num] == correctHashes[number]:
                end = time.time()
                print(normal[num] + "\t" + str(end - start1))
                correctHashes.pop(number)
                del totalLines[-1]
                break

标签: pythonlist-comprehensionchunking

解决方案


推荐阅读