以下是一个示例代码,展示了如何按时间戳仅统计最后一项:
data = [
{"name": "A", "timestamp": 1638422345, "value": 10},
{"name": "A", "timestamp": 1638422346, "value": 20},
{"name": "A", "timestamp": 1638422347, "value": 30},
{"name": "B", "timestamp": 1638422345, "value": 5},
{"name": "B", "timestamp": 1638422346, "value": 15},
{"name": "B", "timestamp": 1638422347, "value": 25},
]
last_items = {}
for item in data:
name = item["name"]
timestamp = item["timestamp"]
value = item["value"]
if name not in last_items or timestamp > last_items[name]["timestamp"]:
last_items[name] = {
"timestamp": timestamp,
"value": value
}
for name, item in last_items.items():
print(f"Name: {name}, Last Timestamp: {item['timestamp']}, Last Value: {item['value']}")
这段代码首先定义了一个包含多个字典的列表,每个字典表示一个数据项,包含名称、时间戳和值。然后,使用一个名为last_items
的字典来存储每个名称的最后一个数据项。
接下来,使用循环遍历数据列表中的每个数据项。对于每个数据项,首先获取名称、时间戳和值。然后,检查last_items
字典中是否已经有该名称的数据项。如果没有,则将当前数据项添加到last_items
字典中。如果已经存在该名称的数据项,则比较当前数据项的时间戳与已存在数据项的时间戳,如果当前数据项的时间戳较大,则更新last_items
字典中对应名称的数据项。
最后,使用另一个循环遍历last_items
字典,并打印每个名称的最后一个数据项的时间戳和值。
运行上述代码,将输出以下结果:
Name: A, Last Timestamp: 1638422347, Last Value: 30
Name: B, Last Timestamp: 1638422347, Last Value: 25
这表示在给定数据列表中,名称"A"的最后一个数据项的时间戳是1638422347,值为30;名称"B"的最后一个数据项的时间戳是1638422347,值为25。