with open("input_day4.txt") as file: lines = [line.rstrip() for line in file] winning_numbers = [line.split(": ")[1].split(" | ")[0].split(" ") for line in lines] winning_numbers = [list(filter(lambda a: a != '', winning_numbers[i])) for i in range(len(winning_numbers))] numbers_have = [line.split(": ")[1].split(" | ")[1].split(" ") for line in lines] numbers_have = [list(filter(lambda a: a != '', numbers_have[i])) for i in range(len(numbers_have))] instances = [1 for x in range(len(lines))] index = 0 existing_cards = len(lines) extra_cards=0 for card in winning_numbers: for instance in range(instances[index]): card_matches = 0 for number in card: if str(number) in numbers_have[index]: card_matches+=1 if card_matches>0: #add copies for i in range(card_matches): if index+(i+1) > len(winning_numbers): break instances[index+i+1]+=1 extra_cards+=1 index+=1 print(instances) print(extra_cards+existing_cards)