The accepted answer in the original question is best, as I learned. I missed the fact that any look-up in a set or dictionary is only Order(1). Sets and dicts address their elements via hashes by which the location in memory is directly known - very neat. (NB: calling set() upon a sequence of hashable/immutable elements removes any duplicates and the set is most efficiently created: Order(n) for n items.)
I demonstrate by searching for the last item in a list compared to searching for any item in a set:
>>> import timeit, random
>>> rng = range(100999)
>>> myset = set(rng)
>>> mylist = list(rng)
>>> # How long does it take to test the list for its last value
>>> # compared to testing for a value in a set?
>>> timeit.timeit(lambda: mylist[-1] in mylist, number=9999)
12.907866499997908
>>> timeit.timeit(lambda: random.choice(rng) in myset, number=9999)
0.012736899996525608
>>>