我有一份字典清单
my_list = [
{"id": "UU7t", "updated_at": "2020-01-06_16-40-00", "summary": "Renewed"},
{"id": "yT8h", "updated_at": "2020-01-07_18-24-22", "summary": "Renewed"},
{"id": "i8Po", "updated_at": "2020-01-08_13-16-36", "summary": "Renewed"},
{"id": "yT8h", "updated_at": "2020-01-13_18-24-05", "summary": "Deleted"},
{"id": "7uYg", "updated_at": "2020-01-18_23-37-19", "summary": "Transferred"},
]
我想获取已删除重复字典的列表,其中id相同,但“updated_at”是最新的
因此,我的最终清单将是:
my_list = [
{"id": "UU7t", "updated_at": "2020-01-06_16-40-00", "summary": "Renewed"},
{"id": "i8Po", "updated_at": "2020-01-08_13-16-36", "summary": "Renewed"},
{"id": "yT8h", "updated_at": "2020-01-13_18-24-05", "summary": "Deleted"},
{"id": "7uYg", "updated_at": "2020-01-18_23-37-19", "summary": "Transferred"},
]
有效的方法是什么
两种解决方案,一种使用dict,另一种通过排序和分组:
您可以使用
dict
来累积项目字典可以将
id
存储为键,将列表项存储为值。仅当不存在具有相同键的项时,才在字典中插入项;如果它确实比较了updated_at
值,并在需要时更新字典还有几点注意:
您还可以使用
dict.get
和“空对象模式”删除特殊情况:一种方法是改变dict的结构
这里,我们正在重新构造dict,以便“id”是键,所有元素都是“值”,然后迭代您提供的列表以检查“id”是否已经存在于newList中,如果它存在,那么只需更新相同的记录(前提是更新时间是新的),或者添加新记录
输出如下所示:
相关问题 更多 >
编程相关推荐