Это простое утверждение:
zip(xrange(0, 11614321), xrange(0, 11627964))
... съедает большую часть моей оперативной памяти.(> 150 МиБ!) Почему?
Редактировать: Ах, перечитывая документы, я вижу, zip
возвращает список, а не повторяемый.Что-нибудь вроде zip
, которое возвращает итеративное значение?
Изображение большего размера: я перебираю два больших массива файловых данных и делаю такие вещи, как перебора (0-конец, 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