import collections import random import timeit class Complains(object): def __init__(self, i): self.i = i def __lt__(self, other): return self.i < other.i def __repr__(self): return "Complains(%d)" % self.i x = range(10000) x = [Complains(i) for i in x] random.shuffle(x) def sort(): random.shuffle(x) x.sort(cmp) print timeit.timeit('sort()', setup="from __main__ import sort", number=1000)