首页 > 解决方案 > 添加新数据、更新现有数据和删除缺失数据的算法

问题描述

我做了很多搜索,但无法找到满意的答案来实现以下目标的最有效方法。

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

目前,我在每个列表上进行循环,遍历每个产品的另一个列表:

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

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

标签: pythonalgorithmmergesetdataset

解决方案


首先,我建议将dicts 与 Product 代码(或名称或其他)一起用作键,并将 Productobject用作​​值。这应该使您的循环在一千个条目上至少快 100 倍。

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

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

推荐阅读