我需要迭代多个列表,并为匹配记录做一些计算:
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)
有没有一种有效的方法来进行上述计算.非常感谢.
构建一些字典以便快速查找:
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)
| 归档时间: |
|
| 查看次数: |
103 次 |
| 最近记录: |