假设我们有一个列表,其中包含多个字典,每个字典都有一个唯一的id字段和一个值字段。我们想要按照id级别显示最旧的值和最新的值。下面是一个解决方法的代码示例:
data = [
{"id": 1, "value": "old_value1"},
{"id": 2, "value": "old_value2"},
{"id": 1, "value": "new_value1"},
{"id": 3, "value": "old_value3"},
{"id": 2, "value": "new_value2"},
{"id": 3, "value": "new_value3"}
]
# 创建一个字典来存储每个id的最旧值和最新值
result = {}
# 遍历每个字典
for item in data:
id = item["id"]
value = item["value"]
# 如果id在结果字典中不存在,则将当前值设置为最旧值和最新值
if id not in result:
result[id] = {"oldest": value, "newest": value}
else:
# 如果id已经存在于结果字典中,则更新最新值
result[id]["newest"] = value
# 打印结果
for id, values in result.items():
print(f"ID: {id}, Oldest Value: {values['oldest']}, Newest Value: {values['newest']}")
运行以上代码,输出结果为:
ID: 1, Oldest Value: old_value1, Newest Value: new_value1
ID: 2, Oldest Value: old_value2, Newest Value: new_value2
ID: 3, Oldest Value: old_value3, Newest Value: new_value3
以上代码首先创建了一个名为result
的空字典,用于存储每个id的最旧值和最新值。然后遍历每个字典,如果id在结果字典中不存在,则将当前值设置为最旧值和最新值;如果id已经存在于结果字典中,则只更新最新值。最后,打印出结果。
上一篇:按ID将行转换为列