添加新数据、更新现有数据和删除缺失数据的算法

Algorithm to add new, update existing and remove missing data

我进行了大量搜索,但未能找到实现以下目标的最有效方法的满意答案。

假设我的应用程序包含一个产品列表。每天结束时都会调用外部服务 returns 来自主数据源的另一个产品列表。

目前,我在每个列表上循环,为每个产品循环另一个列表:

我想知道是否有更有效的方法来实现这一点?或者任何与此相关的算法或模式?

在每种情况下,产品都由 Python 列表中的对象表示。

首先,我建议使用 dicts,产品代码(或名称或其他)作为键,产品 object 作为值。这应该使您的循环在一千个条目上至少快 100 倍。

然后,特别是对于第二次搜索,可能值得探索将第一个 dict 的键转换为 set 的可能性,并在差异上循环,如

for i in set(appDict.keys()).difference(masterDict.keys()):
    ##update unavailable Product data