Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- data = data.split("\n")
- all_ingredients = set()
- class Food:
- def __init__(self, s):
- self.ingredients = s[:s.index("(")].strip().split(" ")
- self.allergens = s[s.index("(contains") + len("(contains"):-1].strip().split(", ")
- foods = list(map(Food, data))
- allergy_dict = {}
- for food in foods:
- all_ingredients = all_ingredients.union(set(food.ingredients))
- for allergen in food.allergens:
- if not allergen in allergy_dict:
- allergy_dict[allergen] = set(food.ingredients)
- else:
- allergy_dict[allergen] = allergy_dict[allergen].intersection(food.ingredients)
- allergy_ingredients = set()
- for k in allergy_dict:
- allergy_ingredients = allergy_ingredients.union(allergy_dict[k])
- safe_ingredients = all_ingredients.difference(allergy_ingredients)
- print(safe_ingredients)
- tally = 0
- for f in foods:
- for i in f.ingredients:
- if i in safe_ingredients:
- tally += 1
- print(tally)
- print(allergy_dict)
- out = []
- while len(allergy_dict) > 0:
- a = None
- rem = None
- for a in allergy_dict:
- if len(allergy_dict[a]) == 1:
- rem = allergy_dict[a].pop()
- out.append((a, rem))
- break
- if rem == None:
- break
- del allergy_dict[a]
- for b in allergy_dict:
- if rem in allergy_dict[b]:
- allergy_dict[b].remove(rem)
- print("\n")
- print(allergy_dict)
- print(sorted(out))
- print(",".join(list(map(lambda x: x[1], sorted(out)))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement