longest = max(len(timing[0]) for timing in timings)
ranked = sorted(timings, key=lambda t: t[1])
fastest = ranked[0][1]
for timing in ranked:
    print('{:>{width}} : {:9.6f} secs, rel speed {:4.2f}x, {:6.2f}% slower'.format(
        timing[0], timing[1], round(timing[1] / fastest, 2), round((timing[
        1] / fastest - 1) * 100, 2), width=longest))
Why is creating a set from a concatenated list faster than using `.update`?