如何检查一个列表/字典的元素是否存在于python中的另一个列表/字典中

bra*_*orm 2 python dictionary list

这是一个场景,我正在检查A中的元素是否存在于B中,而这段代码可以工作,当我阅读数百万行时需要花费大量时间.有效的方法是将A和B中的每个列表作为字典,并查看它们是否存在于彼此中.但我无法想到一种简单的字典查找方式.这是针对dict A中的每个键值对,我想检查dictB中是否存在该键值对

A = [['A',[1,2,3]],['D',[3,4]],['E',[6,7]]]

B=  [['A',[1,2,3]],['E',[6,7]],['F',[8,9]]]

count = 0

for line in A:

  if len(line[1]) > 1:

     if line in B:

       count = count + 1

print count
Run Code Online (Sandbox Code Playgroud)

Wol*_*lph 5

  1. 将列表转换为元组
  2. 将元组列表转换为集合
  3. 相交两组
  4. 打印交叉点的长度

例:

A = [['A',[1,2,3]],['D',[3,4]],['E',[6,7]]] 
B = [['A',[1,2,3]],['E',[6,7]],['F',[8,9]]]

A_set = set((a, tuple(b)) for a, b in A)
B_set = set((a, tuple(b)) for a, b in B)
print len(A_set & B_set)
Run Code Online (Sandbox Code Playgroud)