Python快速找出列表1有但列表2没有的数据,实现数据同步

问题描述

我们平时需要使用Python来同步数据,我的思路是读取数据库1的id,再读取数据库2的id,形成两个列表,然后对比两个列表,快速找出列表1有但列表2没有的数据,就作为需要新增同步的数据id。然后在读取id进行同步。

为什么要这样设计了呢,因为可能之前的同步会失败,所以可能列表1和列表2中的id有重叠部分,也有非重叠部分,所以这样做容错率会更高。

解决方法

所以我模拟了两个列表如下:

data_1_id_list = [1,2,3,4]
data_2_id_list = [1,4,5,6]

通过上面列表可以看出,我们需要新增同步的是,2,3这两个id 的数据。

data_1_id_list = [1,2,3,4]
data_2_id_list = [1,4,5,6]
# 将两个列表转换为集合
set_1 = set(data_1_id_list)
set_2 = set(data_2_id_list)
# 使用差集运算来获取set_1有但set_2没有的数据
diff = set_1.difference(set_2)
# 将结果转换回列表格式
add_id_list = list(diff)

print(add_id_list)

在这个例子中,我们首先将两个列表转换为集合(set),然后使用symmetric_difference()方法来计算两个集合之间的对称差集。最后,我们将结果转换回列表格式。这样,你就可以得到data_1_id_list中有但data_2_id_list中没有的数据。

最后输出:

[2, 3]

你可能感兴趣的:(Python,python,数据库)