как избежать подстрок

В настоящее время я обрабатываю такие разделы строки:

for (i, j) in huge_list_of_indices:
    process(huge_text_block[i:j])

Я хочу избежать накладных расходов на создание этих временных подстрок. Есть идеи? Возможно, обертка, которая каким-то образом использует смещения индекса? В настоящее время это мое узкое место.

Обратите внимание, что process () - это еще один модуль python, который ожидает на входе строку.

Edit:

Некоторые люди сомневаются в наличии проблемы. Вот несколько примеров результатов:

import time
import string
text = string.letters * 1000

def timeit(fn):
    t1 = time.time()
    for i in range(len(text)):
        fn(i)
    t2 = time.time()
    print '%s took %0.3f ms' % (fn.func_name, (t2-t1) * 1000)

def test_1(i):
    return text[i:]

def test_2(i):
    return text[:]

def test_3(i):
    return text

timeit(test_1)
timeit(test_2)
timeit(test_3)

Вывод:

test_1 took 972.046 ms
test_2 took 47.620 ms
test_3 took 43.457 ms
6
задан hoju 3 December 2011 в 09:45
поделиться