2016-10-17 1 views
0
sample = ['AAAA','CGCG','TTTT','AT$T','ACAC','ATGC','AATA'] 
Position = [0, 1,  2,  3,  4,  5,  6] 

У меня есть вышеуказанный образец с позициями, связанными с каждым элементом. Я несколько шагов фильтрации, код которого приведен here.Как сохранить значения позиции исходного списка после того, как элементы списка были отсортированы по парам (Python)?

Этапы ликвидации являются:

#If each base is identical to itself eliminate those elements eg. AAAA, TTTT 
#If there are more than 2 types of bases (i.e.' conversions'== 1) then eliminate those elements eg. ATGC 
#Make pairs of all remaining combinations 
#If a $ in the pair, then the corresponding base from the other pair is eliminated eg. (CGCG,AT$T) ==> (CGG, ATT) and (ATT, AAA) 
#Remove all pairs where one of the elements has all identical bases eg. (ATT,AAA) 

В конце концов, у меня есть выход с различными комбинациями выше, как показано ниже.

Мне нужно найти способ, которым я получаю положения этих пар относительно исходного образца, как показано ниже.

Position = [[1,3],[1,4],[1,6],[3,4]] 

ответ

0

Вы можете преобразовать список в список кортежей первого

xs = ['AAAA', 'CGCG', 'TTTT', 'AT$T', 'ACAC', 'ATGC', 'AATA'] 
ys = [(i, x) for i,x in enumerate(xs)] 

print(ys) 
=> [(0, 'AAAA'), (1, 'CGCG'), (2, 'TTTT'), (3, 'AT$T'), (4, 'ACAC'), (5, 'ATGC'), (6, 'AATA')] 

Затем работать с этим в качестве входного списка вместо

+0

Но теперь мне придется изменить всю свою программу здесь (HTTPS : //eval.in/662091), чтобы включить это. Разве нет способа просто отслеживать это извне, не вникая в код? – biogeek

+0

@biogeek вы также должны опубликовать свою программу. я буду в состоянии помочь вам лучше. – naomik

 Смежные вопросы

  • Нет связанных вопросов^_^