👤

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.


Répondre :

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