对于许多导致内存问题的语句

时间:2012-04-19 20:49:23

标签: python iterable

我在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

1 个答案:

答案 0 :(得分:2)

使用itertools.product

from itertools import product

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

来自文档:

  

此函数等效于以下代码,但实际实现不会在内存中构建中间结果