import re from pathlib import Path filepath = Path("./data/3_example") filepath = Path("./data/3_input") with open(filepath) as filein: data = filein.read() regex_mults = re.compile("mul\((\d{1,3},\d{1,3})\)") pairs = [[int(i) for i in pair.split(',')] for pair in regex_mults.findall(data)] print(sum([x*y for x,y in pairs])) regex_dos = re.compile("do\(\)(\S*?)don't\(\)") dont_data = ("do()"+data).split("don't") do_data = "".join([s[s.find('do()'):] for s in dont_data]) pairs = [[int(i) for i in pair.split(',')] for pair in regex_mults.findall(do_data)] print(sum([x*y for x,y in pairs]))