For a one-off search, if you're committed to starting with that data structure and can't amortize the time it takes to build it into a dictionary, and don't know whether the starting structure is sorted (so that bisection-search is not an option), there are no substantially faster algorithms than simple linear search. You can express it elegantly, e.g. in Python 2.6 or better:
label = next((lab for cho, lab in choices if cho==someint), None)
assuming you want the label to be None
if no choice matches -- or if you want an exception to be raised in that case, just
label = next(lab for cho, lab in choices if cho==someint)
or in older Python versions
label = (lab for cho, lab in choices if cho==someint).next()
but I doubt performance will change much (easy to measure with timeit
if you care, but in that case you need to provide some realistic examples of choices
-- typical lengths, chance of no choice being acceptable, etc, etc).