#!/usr/local/bin/python2 from collections import OrderedDict class C(object): def __init__(self, v=0): self.name = v l = [C(), C(1), C(2), C(3), C(4), C(5), C(6), C(7), C(8), C(9)] for i in xrange(20000): m = {} n = [] c = [] for j in l: if j.name not in m: m[j.name] = j n.append(j.name) c.append(j) print m, n, c