'Return a list of (key, dist) pairs, with `dist` being the
weighted distance, sorted from highest to lowest. Does not
include penalties with a zero value.'

def items(self):

    list_ = []
    for key in self._penalties:
        dist = self[key]
        if dist:
            list_.append((key, dist))
    return sorted(list_, key=(lambda key_and_dist: ((- key_and_dist[1]), key_and_dist[0])))
