Skip to content

Instantly share code, notes, and snippets.

@cjw296
Created September 4, 2017 20:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cjw296/4b21ad50b4e5f27816503c62ea7346b8 to your computer and use it in GitHub Desktop.
Save cjw296/4b21ad50b4e5f27816503c62ea7346b8 to your computer and use it in GitHub Desktop.
from collections import defaultdict
import re
order = 'ID', 'GE', 'FN', 'LN','MN', 'EM', 'ST'
MAX_NUM = int(input ("Please enter the number of records: "))
records = []
while len(records) < MAX_NUM:
new_records = input("Please enter some records separated by ';' or '!': ")
for record in re.split('[!;]', new_records):
records.append(record)
for i, record in enumerate(records, start=1):
parsed = defaultdict(list)
for pair in record.split():
key, value = pair.split(':')
parsed[key].append(value)
ordered = []
for key in order:
for value in parsed[key]:
ordered.append(key+':'+value)
print(' '.join(ordered))
if i>MAX_NUM:
break
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment