reuven / python-workout

Files for the Python Workout book
230 stars 147 forks source link

e13b1_namedtuple_records.py throws KeyError #6

Open tnakatani opened 3 years ago

tnakatani commented 3 years ago

The solution in e13b1_namedtuple_records.py throws an error: KeyError: 'last'

In the solution below:

def format_sort_records(list_of_tuples):
    output = []
    template = '{last:10} {first:10} {distance:5.2f}'
    for person in sorted(list_of_tuples, key=operator.attrgetter('last', 'first')):
        output.append(template.format(*(person._asdict())))
    return output

I believe you need two asterisks in output.append to make it work:

output.append(template.format(**(person._asdict())))

Reference: https://docs.python.org/3/tutorial/controlflow.html#unpacking-argument-lists