我想對列表應用一個操作,該列表一次應該包含三個元素。對列表中的當前元素,先行元素和後繼元素的操作
元素是串,它由隨後的數字字符,如
'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
。對於範圍爲1.890-2.56
的最後一個元素ih-p
。
我希望這是可以理解的。有沒有一種「簡單」的方法來實現這一目標?某種過濾器?
Duplicate http://stackoverflow.com/questions/5434891/iterate-a-list-as-pair-current-next-in-python –