John Nagle wrote: > Is the "in" test faster for a dict or a set? > Is "frozenset" faster than "set"? Use case is > for things like applying "in" on a list of 500 or so words > while checking a large body of text.
As Arnaud suspects: no significant difference: $ python dictperf.py dict --> 0.210289001465 set --> 0.202902793884 frozenset --> 0.198950052261 $ cat dictperf.py import random import timeit with open("/usr/share/dict/words") as instream: words = [line.strip() for line in instream] #random.seed(42) sample = random.sample(words, 501) n = sample.pop() y = random.choice(sample) d = dict.fromkeys(sample) s = set(sample) f = frozenset(sample) for lookup in d, s, f: print type(lookup).__name__, "-->", timeit.timeit( "n in lookup; y in lookup", "from __main__ import lookup, n, y") Peter -- http://mail.python.org/mailman/listinfo/python-list