#!/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(100000): m = {} n = [] n_append = n.append c = [] c_append = c.append for j in l: j_name = j.name if j_name in m: continue m[j_name] = j n_append(j_name) c_append(j) print m, n, c