Informatique

Question

Bonjour quelqu’un pourrait m’aider pour la fonction python suivante:

Créer une fonction compresse(b) qui, pour éviter la répétition des nucleotides, renvoie le tableau de chacun d'entre
eux suivi de son nombre d'occurrences successifs.
Ainsi compresse("AAAGAACTTCCC") renvoie ['A',3,'G',1,'A',2,'C',1, 'T',2,'C',3].
decompresse(tab) qui fait l'opération inverse.

1 Réponse

  • def compresse(b):

       cpt = 1

       l = []

       c = b[0]

       for i in range(len(b)-1):

           if b[i] == b[i+1]:

               cpt+=1

           else:

               l.append(b[i])

               l.append(cpt)

               cpt = 1

       l.append(b[i])

       l.append(cpt)

       return l

    def decompresse(tab):

       m = ""

       for i in range(0,len(tab)-1,2):

           m+=tab[i]*tab[i+1]

       return m

Autres questions