import argparse import functools from typing import NamedTuple, List parser = argparse.ArgumentParser() parser.add_argument("ifile", type=argparse.FileType('r')) args = parser.parse_args() class Pairing(NamedTuple): signals: List[str] digits: List[str] lines = [Pairing(line.split('|')[0].split(' '), line.split('|')[1].strip().split(' ')) for line in args.ifile.readlines()] print(sum([functools.reduce(lambda acc, val: acc + 1 if len(val) in (2, 3, 4, 7) else acc, pairing.digits, 0) for pairing in lines]))