elves = [] count = 0 def inrange(lb, ub, check): """Returns true iff check is inclusive in-between lb and ub.""" return check >= lb and check <= ub with open("input.txt", "r") as f: for line in f.readlines(): line = line.strip("\n") # Some python magic to split out the strings and convert them to integers pair = [x.split("-") for x in line.split(",")] pair = [[int(y) for y in x] for x in pair] elves.append(pair) # Elves is now a list of list of lists. for elf in elves: lb1 = elf[0][0] lb2 = elf[1][0] ub1 = elf[0][1] ub2 = elf[1][1] if (inrange(lb1, ub1, ub2) or inrange(lb1, ub1, lb2) or inrange(lb2, ub2, ub1) or inrange(lb2, ub2, lb1)): count += 1 print(count)