n 個のタイムスタンプ (Pythondatetime
オブジェクト) の並べ替えられたリストがあるとします。フォームのタプルのリストを生成するにはどうすればよいでしょうか(t, count)
。ここt
で、 はdatetime
オブジェクトでありcount
、リスト内の要素の数はx
から最大数分t
です。
たとえば、日付 (簡潔にするために文字列。実際にはdatetime
オブジェクト) が与えられた場合:
timestamps = ["13:00", "13:01", "13:03", "13:04", "13:05", "13:06", "13:09"]
2分の場合x
、利回り
[("13:00", 2), ("13:03":3), ("13:06":1), ("13:09", 1)]]
私がやろうとしているのは、リソースに対するヒットのより粗いリストを作成することです。私が持っている唯一のデータは、すべてのヒットのアクセス時間です (粒度はミリ秒単位であり、分単位まで細かくしたいのですが、または10分)
私は自分の試みを投稿しますが、恥ずかしいです...
編集:これは私がこれまでに持っているものです...動作するかどうかをテストしています...
def group_timestamps(timestamps, chunksize=10):
"""Groups a list of timestamps in chunks of ``chunksize`` minutes"""
cs = timedelta(minutes=chunksize)
if not timestamps:
return []
t0 = timestamps[0]
count = 1
chunks = []
for ts in timestamps:
if (ts - t0) <= cs:
count += 1
else:
chunks.append((t0, count))
t0 = ts
count = 1
return chunks