def testDict(limit): i = 0 d = {} while i < limit: s = str(i) + "foo" d[i] = i d[s+"dict"] = {s: i, i: s} i += 1 for k in d: pass def testList(limit): i = 0 l = [] while i < limit: s = str(i) + "foo" l.append(s) l.append({s: i, i: s}) i += 1 for k in l: pass if __name__ == '__main__': from timeit import Timer for i in (1000, 10000, 100000, 1000000): print "timed with", i, "members:" t1 = Timer("testDict(%s)" % i, "from __main__ import testDict") print "dicts:", "%.2f usec/pass" % (1000000 * t1.timeit(number=5)/5.0) t2 = Timer("testList(%s)" % i, "from __main__ import testList") print "lists:", "%.2f usec/pass" % (1000000 * t2.timeit(number=5)/5.0), "\n"