以下是一个示例代码,用于按ID分组获取最新的条目:
from collections import defaultdict
# 示例数据
data = [
{'id': 1, 'content': 'item 1', 'timestamp': '2022-01-01 10:00:00'},
{'id': 2, 'content': 'item 2', 'timestamp': '2022-01-01 11:00:00'},
{'id': 1, 'content': 'item 3', 'timestamp': '2022-01-01 12:00:00'},
{'id': 3, 'content': 'item 4', 'timestamp': '2022-01-01 13:00:00'},
{'id': 2, 'content': 'item 5', 'timestamp': '2022-01-01 14:00:00'}
]
# 创建一个字典,用于存储每个ID对应的最新条目
latest_items = defaultdict(dict)
# 遍历数据列表
for item in data:
item_id = item['id']
item_timestamp = item['timestamp']
# 如果当前条目的时间戳比最新条目的时间戳要晚,则更新最新条目
if item_timestamp > latest_items[item_id].get('timestamp', ''):
latest_items[item_id] = item
# 打印结果
for item_id, latest_item in latest_items.items():
print(f"ID: {item_id}, Latest Item: {latest_item}")
输出结果:
ID: 1, Latest Item: {'id': 1, 'content': 'item 3', 'timestamp': '2022-01-01 12:00:00'}
ID: 2, Latest Item: {'id': 2, 'content': 'item 5', 'timestamp': '2022-01-01 14:00:00'}
ID: 3, Latest Item: {'id': 3, 'content': 'item 4', 'timestamp': '2022-01-01 13:00:00'}
此代码使用了defaultdict
来创建一个字典,用于存储每个ID对应的最新条目。然后,遍历数据列表,对于每个条目,将其ID作为字典的键,将条目本身作为字典的值。在遍历过程中,如果当前条目的时间戳比最新条目的时间戳要晚,则更新字典中的最新条目。最后,打印出每个ID对应的最新条目。
上一篇:按id分组获取最小值和行数
下一篇:按id分组计算比率