# Part 2 digits = { "one": 1, "two": 2, "three": 3, "four": 4, "five": 5, "six": 6, "seven": 7, "eight": 8, "nine": 9, } def replaceWords(inp): # Words might overlap - eightwo transformed = [] result = [] for i in digits: if i in inp: transformed.append(inp.replace(i, str(digits[i]))) print(transformed) for i in range(len(transformed)): for j in range(len(transformed[i])): if transformed[i][j].isdigit(): try: if result[i] != transformed[i][j]: result.append(transformed[i][j]) except IndexError: result.append(transformed[i][j]) print(result) return inp # Part 1 def findFirstAndLastInt(inp): first = 0 last = 0 for i in inp: if i.isdigit(): if first == 0: first = i else: last = i if last == 0: last = first return int(first), int(last) def main(): inputs = [] with open("input.in", "r") as f: for line in f: # inputs.append(line.strip()) # Part 1 inputs.append(replaceWords(line.strip())) s = 0 for inp in inputs: first, last = findFirstAndLastInt(inp) s += first*10 + last if __name__ == "__main__": main()