cleaner way of parsing the passport data

This commit is contained in:
Daniel Cortés
2020-12-04 04:35:38 -03:00
parent 0e8ba2eef2
commit 144d86db93

View File

@@ -1,21 +1,21 @@
import re
with open('input') as f:
data = [line.strip() for line in f]
data = f.read()
def parse_passports(data):
passports = []
current = {}
for line in data:
if line == '':
passports.append(current)
current = {}
else:
fields = line.split(' ')
for field in fields: current[field[:3]] = field[4:]
for raw_passport in data.split('\n\n'):
raw_passport = raw_passport.replace('\n', ' ')
fields = raw_passport.split(' ')
passport = {}
for field in fields:
passport[field[:3]] = field[4:]
passports.append(passport)
passports.append(current)
return passports
def has_fields(passport):
@@ -55,7 +55,7 @@ def solve_a(passports):
return len([passport for passport in passports if has_fields(passport)])
def solve_b(passports):
return len([passport for passport in passports if fill_validation(passport)])
return len([passport for passport in passports if full_validation(passport)])
passports = parse_passports(data)