part1.py 531 B

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