Я хочу применить операцию в списке, который должен охватывать три элемента за раз.Операция над текущим, прецедентом и последующим элементом в списке
элементы представляют собой строки, которая состоит из чисел затем символов, как
'234.23432 hel'
Так строка образец хотел бы, как этот
['0.234 sil', '0.433 dh', '0.822 ax', '1.122 t', '1.45 r', '1.890 ih', '2.302 p']
end_point = 2.56
Число в каждой строки исходного времени (время начала следующего элемента обозначает предыдущее время окончания), а символы на самом деле являются фонемами. То, что я пытаюсь достичь сейчас, - это вычислить время для трех фонем за раз. Итак, я бы начал с первого элемента, который равен '0.234 sil'
. Поскольку у него нет предыдущего элемента, я предполагаю, что начальная точка равна 0
. Теперь я смотрю на следующий + 1 элемент, который равен '0.822 ax'
, поэтому я знаю sil-dh
охватывает от 0-0.822
. Следующим будет sil-dh-ax
, который охватывает от 0.234-1.122
и так далее. Если не осталось ни одного + элемента или это последний элемент, он должен использовать значение end_point
. Таким образом, вторым и последним результатом будет r-ih-p
с диапазоном 1.45-2.56
. Для последнего элемента ih-p
с диапазоном 1.890-2.56
.
Надеюсь, это понятно. Есть ли «простой» способ достичь этого? Какой-то фильтр?
Дубликат http://stackoverflow.com/questions/5434891/iterate-a-list-as-pair-current-next-in-python –