I want optimize this filter function. It is searching in two list: one is of category and one is of tags. That's why it takes a long time to run this function.
def get_percentage(l1, l2, sim_score): diff = intersection(l1, l2) size = len(l1) if size != 0: perc = (diff/size) if perc >= sim_score: return True else: return False def intersection(lst1, lst2): return len(list(set(lst1) & set(lst2))) def filter_entities(country, city, category, entities, entityId): valid_entities = [] tags = get_tags(entities, entityId) for index, i in entities.iterrows(): if i["country"] == country and i["city"] == city: for j in i.categories: if j == category: if(get_percentage(i["tags"], tags, 0.80)): valid_entities.append(i.entity_id) return valid_entities