Skip to main content
 首页 » 编程设计

python之我的程序填满了内存。还有另一种方法吗

2025年05月04日11zhenyulu

我知道对象 refguess 变成 95^n 个字符长,这就是存储在内存中的内容。是否可以一次将一个元素加载并迭代到内存中,在加载新元素之前将其删除?最终,我想将其移植到 GPU 上运行,以利用着色器核心的卓越数字运算能力,因此较小的 RAM 占用空间将是最佳选择。

import itertools 
import string 
 
i = 1 
refguess = '' 
password = ' ~}}' 
charlist = list(string.printable) 
charlist = charlist[1:95] 
 
while refguess != password: 
    i += 1 
    for idx, val in enumerate(list(itertools.product(charlist,repeat=i))): 
        refguess = ''.join(map(str,val)) 
        if refguess == password: 
            print('Password is ' + '(' + refguess + ')') 
            break 

请您参考如下方法:

正如 Mark Ransom 发布的那样,答案是我在不需要的时候列了一个 list 。

谢谢!