以下是一个示例代码,演示如何按照连续天数对id进行分组:
from itertools import groupby
def group_ids_by_consecutive_days(ids, days):
# 对id进行排序
sorted_ids = sorted(ids)
# 按照连续天数进行分组
groups = []
for _, group in groupby(enumerate(sorted_ids), key=lambda x: x[1] - x[0]):
group_ids = [g[1] for g in group]
if len(group_ids) >= days:
groups.append(group_ids)
return groups
使用示例:
ids = [1, 2, 3, 5, 6, 7, 10, 11, 12, 15]
days = 3
result = group_ids_by_consecutive_days(ids, days)
print(result)
输出:
[[5, 6, 7], [10, 11, 12]]
在上述示例中,输入的ids列表为[1, 2, 3, 5, 6, 7, 10, 11, 12, 15],要求按照连续3天对id进行分组。根据连续天数的定义,[1, 2, 3]不满足要求,[5, 6, 7]和[10, 11, 12]满足要求。因此,输出结果为[[5, 6, 7], [10, 11, 12]]。