Python语句使用过多的RAM

Tha*_*tos 2 python memory-management

这个简单的陈述:

zip(xrange(0, 11614321), xrange(0, 11627964))
Run Code Online (Sandbox Code Playgroud)

......吃掉了我的大部分内存.(> 150 MiB!)为什么?

编辑:啊,重新阅读文档,我看到zip返回一个列表,而不是一个可迭代的.这样的东西zip会返回一个可迭代的吗?


更大的图片:我正在迭代两个大的文件数据数组,我正在做迭代(0-end,0-end),(0-end,1-end)等等.我喜欢不切片数组,因为它会导致过多的内存分配.我想我只是迭代索引,但这似乎不起作用,如上所述.整个代码:

def subsequence_length(data_a, data_b, loc_a, loc_b):
    length = 0
    for i_a, i_b in zip(xrange(loc_a, len(data_a)), xrange(loc_b, len(data_b))):
        if data_a[i_a] == data_b[i_b]:
            length += 1
        else:
            break
    return length
Run Code Online (Sandbox Code Playgroud)

nos*_*nos 12

使用itertools中的izip