Я хочу разбить строку на список индексов, где сегменты разделения начинаются с одного индекса и заканчиваются перед следующим.Разбиение строки по списку индексов
Пример:
s = 'long string that I want to split up'
indices = [0,5,12,17]
parts = [s[index:] for index in indices]
for part in parts:
print part
Это вернет:
длинная строка, что я хочу, чтобы разделить
строку, которую я хочу разделить
, что я хочу разделить
Я хочу разделить
Я пытаюсь получить:
долго
строка
что
Я хочу, чтобы разделить
Другой способ: '[s [i: j] для i, j в izip_longest (индексы, индексы [1:])]', но мне нравится ваш путь лучше! – jamylak
Это копирует список индексов с помощью 'index [1:]' и создает новый список с двойным размером функцией 'zip' -> Плохая производительность и потребление памяти. – schlamar
@ ms4py Это хорошо, производительность не является проблемой в этом случае, это очень читаемое решение. Если производительность является проблемой, мое предложение может быть использовано. – jamylak