假设您有一个包含 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"]
如果x
是两分钟,则屈服
[("13:00", 2), ("13:03":3), ("13:06":1), ("13:09", 1)]]
我想要做的是在资源上制作一个更粗略的点击列表,我拥有的唯一数据是每次点击的访问时间(粒度化到毫秒,我希望它精确到分钟,或十分钟)
我会发布我的尝试,但我很惭愧......
编辑:这是我到目前为止所拥有的......测试它是否有效......
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