Замучался искать варианты, вроде такое очевидное стало таким непонятным. Самое простое решение было реализовано так (по мотивам stackoverflow):
#sort construction for types
#будет 2 массива (массив результатов и индексов)
types, types_index = [], []
#будем перебирать все результаты по одному
for type in data:
#Если в индексе такого еще нету
if type.type not in types_index:
#добавим в массив результатов
types.append(type)
#и занесем в индекс, что бы больше он нас не возникал
types_index.append(type.type)
Мне показалось, комментарии тут излишни …