Programme liste

snipy -  
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Enoncé
Voici une méthode pour décrire une liste de chiffres : Pour la liste [1, 1] on a :
2 fois le "1"
donc la liste de description vaut [2,1].

Pour la liste [1, 1, 8, 8, 1, 7, 7, 7] on a :
2 fois le "1"
2 fois le "8"
1 fois le "1"
3 fois le "7"
Donc la description vaut [2, 1, 2, 8, 1, 1, 3, 7].

Ecrivez un programme qui lit une liste d'entiers entre 0 et 9 (en utilisant eval(input()))
et qui affiche la liste de description correspondante.

j'ai essayé d'effectuer un programme ci dessous :

def fonction(liste):
listefinal=[]

i=0
a=0
stop=len(liste)
e=0
c=0
while c < stop:
while i < stop:

if liste[c]==liste[i]:
e=e+1
i=i+1
listefinal.append(e)
listefinal.append(liste[c])


c=c+1


return(listefinal)


liste=eval(input())
print(fonction(liste))

qui me donne [3, 1, 3, 1, 3, 8, 3, 8, 3, 1, 3, 7, 3, 7, 3, 7] avec l'exemple au-dessus
le problème c'est que j'arrive pas a réinitialiser "e" et si j'essaye de faire c=c+e puis e =0 le programme fonctionne pas.

merci de vos futurs aides
A voir également:

1 réponse

Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
Bonsoir snipy,

L'indentation étant importante en Python, merci de re poster ton code avec les balises de code
mode d'emploi:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Visuellement, ça doit ressembler à ceci (avec la coloration syntaxique) :

def test():
    print('test')

test()
1