summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2020-12-21 11:12:34 +0100
committerGustav Sörnäs <gustav@sornas.net>2020-12-21 11:12:34 +0100
commit2524a8856bb743139a107d59f14798f5e87231ce (patch)
treef4e5e94b4039084a3adc956881f5208f7aa9e5b9
parentfec415ca2f39bccde621473aab17952bef80214a (diff)
downloadaoc-2524a8856bb743139a107d59f14798f5e87231ce.tar.gz
d21 cleanup
-rw-r--r--20/py/d21.py9
1 files changed, 3 insertions, 6 deletions
diff --git a/20/py/d21.py b/20/py/d21.py
index 82f5b00..0ed0448 100644
--- a/20/py/d21.py
+++ b/20/py/d21.py
@@ -13,17 +13,14 @@ def allergens(line):
def pt1(_in):
- all_ingredients = []
- for line in _in:
- all_ingredients.extend(ingredients(line))
+ all_ingredients = list(itertools.chain.from_iterable(ingredients(line) for line in _in))
might_be = defaultdict(lambda: set(all_ingredients))
for line in _in:
for alg in allergens(line):
might_be[alg] &= set(ingredients(line))
- might_be = set.union(*might_be.values())
- defo_not = set(all_ingredients) - might_be
- return sum(all_ingredients.count(ing) for ing in defo_not)
+ return sum(all_ingredients.count(ing)
+ for ing in set(all_ingredients) - set.union(*might_be.values()))
def pt2(_in):