0

我在 Python 中遇到内存错误,这并不奇怪,但我需要一个替代方案。因此,我使用了几个语句,据我所知,这些语句将值存储在内存中。我应该将 for 语句切换到什么,以便它们将其保存到不会保存到内存中的内容中。将其保存到文本文件会更好吗?下面的代码可以帮助回答我应该做什么。我想要你的任何想法的例子。

def product(*args, **kwds):
    pools = map(tuple, args) * kwds.get('repeat', 1)
    result = [[]]
    for pool in pools:
        result = [x+[y] for x in result for y in pool]
    for prod in result:
        yield tuple(prod)

def start():
    for chars in product("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12234567890!@#$%^&*?,()-=+[]/;", repeat = 4):
        print chars
4

1 回答 1

2

使用itertools.product

from itertools import product

def start():
    for chars in product("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ12234567890!@#$%^&*?,()-=+[]/;", repeat = 4):
        print chars

从文档中:

这个函数等价于下面的代码,只是实际实现不会在内存中建立中间结果

于 2012-04-19T20:51:11.197 回答