You’ve got a couple of parallel lists you’d like to combine and output, a line for each pair. Here’s one way to do it: use zip to do the combining.

>>> times = [42.12, 42.28, 42.34, 42.40, 42.45] >>> names = ['Hickman', 'Guest', 'Burns', 'Williams'] >>> fmt = '{:20} {:.2f}'.format >>> print('

'.join(fmt(n, t) for n, t in zip(names, times))) Hickman 42.12 Guest 42.28 Burns 42.34 Williams 42.40

Slightly more succinctly:

>>> print('

'.join(fmt(*nt) for nt in zip(names, times))) ...

If you look at the generator expression passed into str.join , you can see we’re just mapping fmt to the zipped names and times lists.

Well, sort of.

>>> print('

'.join(map(fmt, zip(names, times)))) Traceback (most recent call last): ... IndexError: tuple index out of range

To fix this, we could use itertools.starmap which effectively unpacks the zipped pairs.

>>> from itertools import starmap >>> print('

'.join(starmap(fmt, zip(names, times)))) Hickman 42.12 Guest 42.28 Burns 42.34 Williams 42.40

This latest version looks clean enough but there’s something odd about zipping two lists together only to unpack the resulting 2-tuples for consumption by the format function.

Don’t forget, map happily accepts more than one sequence! There’s no need to zip after all.