查找常见项目数的快速方法python

时间:2019-05-27 11:14:07

标签: python

我有一个包含145000个物料(物料清单)的大数据,我想检查两个物料清单之间共享物料的百分比。

两个for循环或其他方法始终在相似的时间段内运行。

最快的方法是什么?

第一张和第二张帐单是其中包含组件的列表:

for FKid in FirstBill: 
      for SKid in SecondBill:
            CommonChild = (CommonChild + 1) if FKid == SKid else CommonChild
    return CommonChilds / len(FirstBill)

enter image description here

2 个答案:

答案 0 :(得分:0)

Kinda最适合使用一套

# Python program to illustrate the intersection 
# of two lists in most simple way 
def intersection(lst1, lst2): 
    temp = set(lst2) 
    lst3 = [value for value in lst1 if value in temp ] 
    return lst3 

# Driver Code 
lst1 = [4, 9, 1, 17, 11, 26, 28, 54, 69] 
lst2 = [9, 9, 74, 21, 45, 11, 63, 28, 26] 
#print(intersection(lst1, lst2)) 

quantity = len(intersection(lst1, lst2))

答案 1 :(得分:0)

假设帐单中的ID是唯一的,则简单的答案是:

percentage = sum([1 for fkid in FirstBill if fkid in SecondBill]) / len(FirstBill) * 100

percentage = len(set(FirstBill).intersection(set(SecondBill))) / len(FirstBill) * 100