import re def numpart(s): return int(''.join(c for c in s if c in '0123456789')) def game(line): id_part, cube_part = line.split(':') id = numpart(id_part) rounds = cube_part.split(';') for round in rounds: cubes = round.split(',') for cube in cubes: count = numpart(cube) if 'blue' in cube: if count > 14: return 0 elif 'red' in cube: if count > 12: return 0 elif 'green' in cube: if count > 13: return 0 return id with open('adv02a.txt') as f: txt = f.readlines() s = sum(game(line) for line in txt) print(s)