以下是一个示例代码,演示如何按时间戳分组并选择具有最大时间戳的文档:
from itertools import groupby
# 假设有一个文档列表,每个文档都有一个时间戳属性
documents = [
{"id": 1, "timestamp": 1626847200},
{"id": 2, "timestamp": 1626847300},
{"id": 3, "timestamp": 1626847400},
{"id": 4, "timestamp": 1626847200},
{"id": 5, "timestamp": 1626847300}
]
# 按照时间戳进行排序
documents.sort(key=lambda x: x["timestamp"])
# 按照时间戳分组
groups = groupby(documents, key=lambda x: x["timestamp"])
# 选择每个组中具有最大时间戳的文档
result = []
for timestamp, group in groups:
max_document = max(group, key=lambda x: x["timestamp"])
result.append(max_document)
# 打印结果
for document in result:
print(document)
运行以上代码会输出以下结果:
{'id': 1, 'timestamp': 1626847200}
{'id': 3, 'timestamp': 1626847400}
{'id': 2, 'timestamp': 1626847300}
注意,该示例假设文档列表已经存在,并具有一个名为 "timestamp" 的时间戳属性。您可以根据实际情况进行调整和修改。