Skip to main content
 首页 » 编程设计

python:比较2个实例列表

2025年05月04日11lori

我有 2 个实例列表:

list1 
list2 

每个实例都包含id、name等变量...

我正在遍历 list2,我想找到 list1 中不存在的条目。

例如..

for entry in list2: 
  if entry.id in list1: 
    <do something>  

我希望找到一种无需双重 for 循环即可完成此操作的方法。有没有简单的方法?

请您参考如下方法:

我可能会这样做:

set1 = set((x.id,x.name,...) for x in list1) 
difference = [ x for x in list2 if (x.id,x.name,...) not in set1 ] 

其中 ... 是实例的附加(可散列)属性——您需要包含足够多的属性以使其独一无二。

这会将您的 O(N*M) 算法转换为 O(max(N,M)) 算法。