python在多个循环中迭代多个列表

her*_*mos 2 python loops list

我需要迭代多个列表,并为匹配记录做一些计算:

for (a,b,c,d) in list1:
   for (a2,b2,e) in list2:
       if (a==a2) and (b==b2):
           mylist.add(a,b,c,d,e,d*e)
Run Code Online (Sandbox Code Playgroud)

有没有一种有效的方法来进行上述计算.非常感谢.

Eri*_*ric 5

构建一些字典以便快速查找:

data1 = {(a, b): (c, d) for a, b, c, d in list1}
data2 = {(a, b): e for a, b, e in list2}

result = []
for a, b in set(data1) & set(data2):
    c, d = data1[a, b]
    e = data2[a, b]
    result.append((a, b, c, d, e, e*d))
Run Code Online (Sandbox Code Playgroud)