Bonjour,

Je debute en python. Tout d'abord j'explique ce que je cherche a faire.
J'ai une liste d'entier, [3,8,9,4,5,1,8], je cherche a regrouper les entiers de facon a tant que " liste[i] < liste[i+1] ". Ce qui donnerai en resultat pour l'exemple au dessus [3,8,9], [4,5], [1,8]. Je reange tout sa dans une liste final. Mon probleme vient d'une boucle dont l'index depasse l'index max de la liste.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
def func(listeNB) :
	i = 0;
	j = 0;
	liste = [];
	while (len(listeNB)>0) :
		j=1;
		while ((listeNB[j] > listeNB[j-1]) and (j < len(listeNB))):
			j+=1;
		liste.append(listeNB[:j]);
		# print liste; PRINT DE VERIFICATION
		listeNB = listeNB[j:];
	print liste;
Donc mon script ne marche pas :
while ((listeNB[j] > listeNB[j-1]) and (j < len(listeNB))):
IndexError: list index out of range


Mon print de verification me donne cela :
[[3, 8, 9]]
[[3, 8, 9], [4, 5]]
et bug au prochain tour de boucle.

J'ai beau chercher l'erreur dans la condition de la boucle, elle me parait logique. Ma logique est peut etre en compote, je m'en remet a vous pour m'eclairer sur ce petit problème, je suis sur tout bête.

Merci d'avance