我需要遍历多个列表,并对匹配的记录做一些计算:
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)
是否有一种有效的方法来进行上述计算。多谢。
最佳答案
建立一些字典来快速查找:
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))
关于python在多个循环中迭代多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20766406/