In [1]:
    
ticker_tape = {'children': 3,
               'cats': 7,
               'samoyeds': 2,
               'pomeranians': 3,
               'akitas': 0,
               'vizslas': 0,
               'goldfish': 5,
               'trees': 3,
               'cars': 2,
               'perfumes': 1}
    
In [12]:
    
import csv
def parse_aunts(input_path):
    auntsues = {}
    with open(input_path, 'rt') as f_input:
        csv_reader = csv.reader(f_input, delimiter=' ')
        for l in csv_reader:
            auntsues[int(l[1].rstrip(':'))] = {l[2].rstrip(':'): int(l[3].rstrip(',')), 
                                               l[4].rstrip(':'): int(l[5].rstrip(',')), 
                                               l[6].rstrip(':'): int(l[7].rstrip(','))}
    return auntsues
    
In [14]:
    
auntsues = parse_aunts('inputs/input16.txt')
    
In [15]:
    
def ticker_consistent(suedict):
    for k, v in suedict.items():
        if ticker_tape[k] != v:
            return False
    return True
def which_auntsue():
    outcome = {}
    for k, suedict in auntsues.items():
        outcome[k] = ticker_consistent(suedict)
    for i, b in outcome.items():
        if b: print(i, b)
    
In [16]:
    
which_auntsue()
    
    
In [27]:
    
def new_ticker_consistent(suedict):
    for k, v in suedict.items():
        if k in ['cats', 'trees']: 
            if v <= ticker_tape[k]:
                return False
        elif k in ['pomeranians', 'goldfish']:
            if v >= ticker_tape[k]:
                return False
        elif ticker_tape[k] != v:
            return False
    return True
    
In [28]:
    
def new_which_auntsue():
    outcome = {}
    for k, suedict in auntsues.items():
        outcome[k] = new_ticker_consistent(suedict)
    for i, b in outcome.items():
        if b: print(i, b)
    
In [29]:
    
new_which_auntsue()