以下是一个示例代码,它按照创建时间对一组记录进行排序,并返回每组中的前N条记录。
import datetime
# 创建一个包含记录的列表
records = [
{'id': 1, 'name': 'Record 1', 'created_at': datetime.datetime(2022, 1, 1, 12, 0, 0)},
{'id': 2, 'name': 'Record 2', 'created_at': datetime.datetime(2022, 1, 2, 12, 0, 0)},
{'id': 3, 'name': 'Record 3', 'created_at': datetime.datetime(2022, 1, 3, 12, 0, 0)},
{'id': 4, 'name': 'Record 4', 'created_at': datetime.datetime(2022, 1, 4, 12, 0, 0)},
{'id': 5, 'name': 'Record 5', 'created_at': datetime.datetime(2022, 1, 5, 12, 0, 0)},
{'id': 6, 'name': 'Record 6', 'created_at': datetime.datetime(2022, 1, 6, 12, 0, 0)},
{'id': 7, 'name': 'Record 7', 'created_at': datetime.datetime(2022, 1, 7, 12, 0, 0)},
{'id': 8, 'name': 'Record 8', 'created_at': datetime.datetime(2022, 1, 8, 12, 0, 0)},
{'id': 9, 'name': 'Record 9', 'created_at': datetime.datetime(2022, 1, 9, 12, 0, 0)},
{'id': 10, 'name': 'Record 10', 'created_at': datetime.datetime(2022, 1, 10, 12, 0, 0)},
{'id': 11, 'name': 'Record 11', 'created_at': datetime.datetime(2022, 1, 11, 12, 0, 0)},
{'id': 12, 'name': 'Record 12', 'created_at': datetime.datetime(2022, 1, 12, 12, 0, 0)}
]
# 按创建时间对记录进行排序
sorted_records = sorted(records, key=lambda x: x['created_at'])
# 按每组取前N条记录的要求生成结果
n = 3
result = [sorted_records[i:i+n] for i in range(0, len(sorted_records), n)]
# 打印结果
for group in result:
print('Group:')
for record in group:
print(record)
print('---')
这个示例代码中,我们首先创建了一个包含记录的列表。然后,使用sorted()函数和lambda表达式按照记录的created_at字段对记录进行排序。接下来,使用列表切片的方法,将排序后的记录分组,每组取前N条记录,生成最终的结果。最后,通过遍历结果列表,打印每个分组的记录。
下一篇:按创建时间升序排列的SQL