class Collection(object):

    def __init__(self, collection):
        self.collection_dict = dict()
for tup in collection:
    for i, v in enumerate(tup):
        self.collection_dict[i, v] = tup

def lookup_by_first_element(self, e):
    return self.collection_dict.get((0, e), None)

def lookup_by_second_element(self, e):
    return self.collection_dict.get((1, e), None)

def lookup_by_third_element(self, e):
    return self.collection_dict.get((2, e), None)
collection = [(1, 200, 9), (2, 300, 8), (3, 400, 7)]
c = Collection(collection)
Эффективная структура данных объектов в python для поиска на основе любой переменной-члена объекта