我想在一个列表上应用一个操作,它一次应该跨越三个元素。
元素是字符串,由数字和字符组成,例如
'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
,依此类推。如果没有后继+1 元素或者它是最后一个元素,则应该使用该end_point
值。所以倒数第二个结果r-ih-p
的范围是1.45-2.56
. 对于ih-p
具有 range的最后一个元素1.890-2.56
。
我希望这是可以理解的。有没有一种“简单”的方法可以做到这一点?某种过滤器?