I'm fairly new to Python and was hoping I could get some advice before moving forward. I  have a group of integers and I want to check whether or not a given element is contained within that group as fast as possible (speed does matter here).
With Python, should I be looking at custom data structures tailored for these operations (BST, etc), python trickery like wrapping with any(), or are there any well known Python/C libraries that are standard for this sort of thing. I don't want to reinvent the wheel here, so I'm interested to hear the common way to approach this in Python.
A little more background, elements are all inserted into the group up front, and none occur thereafter, so insertion time doesn't matter. This seems to imply that maintaining a sorted group and doing something like binary search will be the best approach, but I'm sure this has already been implemented much more efficiently than I could implement and is available in a Python/C lib. Interested to hear what you guys think. 
Thanks!
The most Pythonic way would be to not store them in a sorted container, but to use a set (or the immutable variant frozenset).  These are hash-based containers, so lookups are O(1).  More importantly, the hashing algorithm is one of the core operations in Python (used for dictionaries, and attribute lookups), so it's written in C, and written to be fast.
And that's usually the case with Python.  Using the standard containers will be faster than rolling your own at the Python level, so try to use them as much as possible.
If you do want to store them in a sorted list, then look at the bisect module in the standard library.  It has standard functions for binary searches.  (Well, not actually.  I actually returns the index of where the searched for item would be.  You'll have to do the final comparison yourself.)  And it may implement them in C (depending on your configuration), so it'll be faster than what you write on your own.
Improving Python Comparison and Existence Operations