#python #string #indexing
#python #строка #индексирование
Вопрос:
У меня есть две строки:
protein = 'IHASEQSDCEKMNALLEKINAIYATDKAKAENYLAEARALKCDKYQEALNNFATIIIKDNSDKEE---LALSDCDVNKLQQLLSDKRLTPEKKIEYNA-LYSNINQANQ--ILNQDVA'
protein_structure = 'HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHEEEECCCCHHHHHHHHHHHHHHHHEEETTTCHHHHHHHHHHCTCTCCCCEEEEEECCC'
Мне нужно добавить '-'
к protein_structure
aligned_structure_to_protein = 'HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHEEEECCCCHHH---HHHHHHHHHHHHHEEETTTCHHHHHHHHHH-CTCTCCCCEE--EEEECCC'
Я думал о том, чтобы найти индекс в индексах белковой строки '-'
, составить список protein_structure
строк и вставить '-'
по индексу. в список. И, наконец, измените list на string.
protein = 'IHASEQSDCEKMNALLEKINAIYATDKAKAENYLAEARALKCDKYQEALNNFATIIIKDNSDKEE---LALSDCDVNKLQQLLSDKRLTPEKKIEYNA-LYSNINQANQ--ILNQDVA'
protein_structure = 'HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHEEEECCCCHHHHHHHHHHHHHHHHEEETTTCHHHHHHHHHHCTCTCCCCEEEEEECCC'
indexes_of_minus = [i for i, ltr in enumerate(protein) if ltr == '-']
list_of_structure_elements = list(protein_stucture)
Но я не знаю, как правильно вставлять знаки '-'
в список
Ответ №1:
Сделайте это после нахождения indexes_of_minus
:
for i in indexes_of_minus:
list_of_structure_elements.insert(i, '-')
затем:
final = ''.join(list_of_structure_elements)
Тест:
In [38]: final
Out[38]: 'HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHEEEECCCCHHH---HHHHHHHHHHHHHEEETTTCHHHHHHHHHH-CTCTCCCCEE--EEEECCC'
Комментарии:
1. не работает propely final = ‘HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHEEEECCCCHHH-H-H-HHHHHHHHHHHEEETTTCHHHHHHHHHHCTC-TCCCCEEEEEE-C-CCCHHHHHHHHHHHHHHHHHHHHTHHEEHHHTTCCCCHHHHHHHHEECCTTTTTTTCTEEEEEEHCCHHHHHHHHHHHHH-H-H-H-H-HHHHHHHETTTTTTTEEEECCCCHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHT-TTTCCTTEEEEEEEEEEHHHHEEEETCCCTTT’
2. @MTG я отредактировал, теперь проверьте. это
n
было излишним.