Добавление знаков в строку в соответствии с другой строкой

#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 было излишним.