#!/usr/bin/python sol = 0 inputfile = open("inputtest.txt", "r") lines = inputfile.readlines() nums = {} syms = {} for line in range(len(lines)): tempnum = "" tempindex = -1 linenumdict = {} linesymdict = {} for index in range(len(lines[line])): tempchar = lines[line][index] if tempchar.isdigit(): tempnum += tempchar if tempindex < 0: tempindex = index else: if tempnum != "" and tempindex >= 0 : linenumdict[tempindex] = tempnum tempnum = "" tempindex = -1 if tempchar not in ('.', '\n'): linesymdict[index] = tempchar if tempnum != "" and tempindex >= 0: linenumdict[tempindex] = tempnum nums[line] = linenumdict syms[line] = linesymdict for ykey in nums: for xkey in nums[ykey].keys(): hasNeigh= False startx = xkey - 1 endx = xkey + len(nums[ykey][xkey]) + 1 starty = ykey - 1 endy = ykey + 1 for y in range(starty, endy): if y in syms: for x in range(startx, endx): if x in syms[y].keys(): hasNeigh = True if hasNeigh: sol += int(nums[ykey][xkey]) print(sol)