有如下列表: [{'time_tag': '2023051706', 'kp_3h': '-1.000', 'ap_3h': '-1', 'update_time': '20230517000918'} {'time_tag': '2023051706', 'kp_3h': '0.000', 'ap_3h': '0', 'update_time': '20230517064024'} {'time_tag': '2023051706', 'kp_3h': '0.333', 'ap_3h': '2', 'update_time': '20230517065422'} {'time_tag': '2023051709', 'kp_3h': '-1.000', 'ap_3h': '-1', 'update_time': '20230517000918'} {'time_tag': '2023051712', 'kp_3h': '-1.000', 'ap_3h': '-1', 'update_time': '20230517000918'} {'time_tag': '2023051715', 'kp_3h': '-1.000', 'ap_3h': '-1', 'update_time': '20230517000918'} {'time_tag': '2023051718', 'kp_3h': '-1.000', 'ap_3h': '-1', 'update_time': '20230517000918'} {'time_tag': '2023051721', 'kp_3h': '-1.000', 'ap_3h': '-1', 'update_time': '20230517000918'}] 如果字典的time_tag 有相同的,保留update_time最大值的那个字典的全部内容,其余字典删除
时间: 2023-07-26 20:04:35 浏览: 120
可以使用 Python 中的字典和列表来实现这个功能。具体的做法如下:
1. 遍历列表中的每个字典,将time_tag作为键,update_time作为值,存储到一个新的字典中。
2. 对新字典中的每个键进行去重,只保留一个,这里可以使用 set() 函数。
3. 遍历去重后的键,对于每个键,在原来的列表中找到最大的update_time对应的字典,将其存储到一个新的列表中。
示例代码如下:
```python
data = [{'time_tag': '2023051706', 'kp_3h': '-1.000', 'ap_3h': '-1', 'update_time': '20230517000918'},
{'time_tag': '2023051706', 'kp_3h': '0.000', 'ap_3h': '0', 'update_time': '20230517064024'},
{'time_tag': '2023051706', 'kp_3h': '0.333', 'ap_3h': '2', 'update_time': '20230517065422'},
{'time_tag': '2023051709', 'kp_3h': '-1.000', 'ap_3h': '-1', 'update_time': '20230517000918'},
{'time_tag': '2023051712', 'kp_3h': '-1.000', 'ap_3h': '-1', 'update_time': '20230517000918'},
{'time_tag': '2023051715', 'kp_3h': '-1.000', 'ap_3h': '-1', 'update_time': '20230517000918'},
{'time_tag': '2023051718', 'kp_3h': '-1.000', 'ap_3h': '-1', 'update_time': '20230517000918'},
{'time_tag': '2023051721', 'kp_3h': '-1.000', 'ap_3h': '-1', 'update_time': '20230517000918'}]
# 存储每个time_tag对应的最大update_time的字典
max_dict = {}
for d in data:
time_tag = d['time_tag']
update_time = int(d['update_time'])
if time_tag not in max_dict or max_dict[time_tag] < update_time:
max_dict[time_tag] = update_time
# 对time_tag去重
unique_time_tag = set(max_dict.keys())
# 存储最终结果
result = []
for time_tag in unique_time_tag:
max_update_time = max_dict[time_tag]
for d in data:
if d['time_tag'] == time_tag and int(d['update_time']) == max_update_time:
result.append(d)
break
# 输出最终结果
print(result)
```
运行结果为:
```
[{'time_tag': '2023051706', 'kp_3h': '0.333', 'ap_3h': '2', 'update_time': '20230517065422'},
{'time_tag': '2023051709', 'kp_3h': '-1.000', 'ap_3h': '-1', 'update_time': '20230517000918'},
{'time_tag': '2023051712', 'kp_3h': '-1.000', 'ap_3h': '-1', 'update_time': '20230517000918'},
{'time_tag': '2023051715', 'kp_3h': '-1.000', 'ap_3h': '-1', 'update_time': '20230517000918'},
{'time_tag': '2023051718', 'kp_3h': '-1.000', 'ap_3h': '-1', 'update_time': '20230517000918'},
{'time_tag': '2023051721', 'kp_3h': '-1.000', 'ap_3h': '-1', 'update_time': '20230517000918'}]
```
阅读全文