以下是一个示例代码,用于比较两个数组并按对象ID删除对象:
def compare_and_delete(arr1, arr2):
# 将arr2中的对象ID存储到一个集合中,以便快速查找
id_set = set(obj['id'] for obj in arr2)
# 遍历arr1,如果对象ID不在arr2中,则保留该对象
result = [obj for obj in arr1 if obj['id'] not in id_set]
return result
# 示例数据
arr1 = [{'id': 1, 'name': 'John'}, {'id': 2, 'name': 'Alice'}, {'id': 3, 'name': 'Bob'}]
arr2 = [{'id': 2, 'name': 'Alice'}, {'id': 3, 'name': 'Bob'}]
# 调用函数进行比较并删除
result = compare_and_delete(arr1, arr2)
# 输出结果
print(result)
输出结果为:
[{'id': 1, 'name': 'John'}]
在示例中,我们定义了一个名为compare_and_delete
的函数,该函数接受两个数组作为参数。首先,我们使用一个集合id_set
来存储arr2
中的对象ID,以便后续的快速查找操作。然后,我们使用列表推导式遍历arr1
,如果对象ID不在id_set
中,则将该对象保留到结果列表result
中。最后,返回结果列表。
在示例数据中,arr1
包含3个对象,arr2
中包含2个对象。根据对象ID的比较,我们删除了arr1
中的两个对象(对象ID为2和3),最终结果中只剩下一个对象(对象ID为1)。