Programme liste

Fermé
snipy - 8 déc. 2020 à 19:40
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 8 déc. 2020 à 20:28
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

1 réponse

Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
8 déc. 2020 à 20:28
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