2

基本的に私が持っているのはこれです:

secondData = [["8:33:00", 5], ["8:33:01", 3], ...] # and so forth
minuteData = [["8:33:00", 6], ["8:34:00", 5], ...] # and so forth

これで、時刻が実際の日時オブジェクトであるかのように見せかけます

私がやりたいのは、分データを反復処理し、その分に含まれるすべての2番目のデータを取得するための最も効率的な方法を見つけることです。たとえば、「8:34:00」がある場合は「8:34.00」..「8:34:59」が必要です。これまたは何かのリストフィルターを作成する簡単な方法はありますか?

リストは時間順に並べられていますが、2番目のデータが欠落している可能性があることに注意してください。たとえば、9時58分には33個のデータポイントしかない場合があります。

4

1 に答える 1

4

bisectを使用します。

from bisect import bisect_left
secondData[bisect_left(secondData, "8:33:00"):bisect_left(secondData, "8:34:00")]

secondDataこれにより、半開間隔 ["8:33:00".."8:34:00")のスライスが得られます。

于 2012-06-26T16:30:06.363 に答える