l = [1, 2,2, 4,4,4,4,4, 1, 4]
occurrence = 1
oldnumber = None
max_occurrence = 0
for number in l:
if number == oldnumber:
occurrence +=1
else:
if occurrence > max_occurrence:
max_occurrence = occurrence
out = {oldnumber : occurrence}
oldnumber = number
occurrence = 1
k, v = list(out.items())[0]
print(f"La suite contenant le plus d'occurrences qui se\
suivent contient {v} éléments du nombre {k}")
édit: En me relisant, je me dis qu'un tupple est préférable à l'utilisation du dico:
l = [1, 2,2, 4,4,4,4,4, 1, 4]
occurrence = 1
oldnumber = None
max_occurrence = 0
for number in l:
if number == oldnumber:
occurrence +=1
else:
if occurrence > max_occurrence:
max_occurrence = occurrence
out = (oldnumber, occurrence)
oldnumber = number
occurrence = 1
nbr , occurrence = out
print(f"La suite contenant le plus d'occurrences qui se\
suivent contient {occurrence} éléments du nombre {nbr}")
- Edité par __fabien 28 mars 2022 à 12:28:22
J'aime les bananes, le python, le gnu, le pingouin.
Réveillez vous un peu: le max d'une liste d'entiers est un entier... et si vous ne savez pas comparer 2 entiers, il y a de bons tutos!
J'aurais aimer que cela sois vrai malheureusement en pratique ça ne marche pas, dût moins chacune de mes tentatives de comparaisons ont résulter d'une erreur car on ne peut pas comparer une liste et un entier.
Réveillez vous un peu: le max d'une liste d'entiers est un entier... et si vous ne savez pas comparer 2 entiers, il y a de bons tutos!
J'aurais aimer que cela sois vrai malheureusement en pratique ça ne marche pas, dût moins chacune de mes tentatives de comparaisons ont résulter d'une erreur car on ne peut pas comparer une liste et un entier.
Bonjour.
Mais le max d´une liste, on peut lui le comparer à un entier. Faut juste faire une petite recherche personnelle du genre "python maximum liste".
Réveillez vous un peu: le max d'une liste d'entiers est un entier... et si vous ne savez pas comparer 2 entiers, il y a de bons tutos!
J'aurais aimer que cela sois vrai malheureusement en pratique ça ne marche pas, dût moins chacune de mes tentatives de comparaisons ont résulter d'une erreur car on ne peut pas comparer une liste et un entier.
Quand on se pose des questions basiques, on lance l'interpréteur et on joue avec:
>>> L = list(range(10))
>>> m = max(L)
>>> m
9
>>> m < 3
False
>>>
pour se convaincre que le max d'une liste d'entiers est bien un entier qu'on peut comparer à un autre entier... Et que Python fait le boulot.
Après soit vous pensez que Python n'est pas un langage fiable (et c'est pas la peine de continuer) soit vous potassez un peu les bases histoire d'être plus confiant de ce que ça fait ou pas...
On ne s'est pas demandé pourquoi la fonction s'appelait: def plus_grande_suitedenb(liste): Peut-être que @__fabien a compris. Il ne s'agit pas de trouver le maximum de la liste mais la plus longue sous-liste composée d'éléments consécutifs identiques.
-
L = [1, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5] it = iter(L) p = next(it) mm = 0 m = 1 for c in it: if c == p: m += 1 else: if m > mm: mm = m m = 1 p = c if m > mm: mm = m print(mm)
-
Variante de celle de __fabien:
-
L = [1, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5] it = iter(L) p = next(it) S = [] s = [0, 0, p] for i, c in enumerate(it, start=1): if c == p: s[1] = i else: S.append(s) s = [i, i, c] p = c S.append(s) d, f, n = max(S, key=lambda t: t[1]-t[0]) print(f"De {d} à {f}: {n}")
- Edité par PierrotLeFou 29 mars 2022 à 5:03:51
Le Tout est souvent plus grand que la somme de ses parties.
Comment comparer le max() d'une liste à un int ?
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
PB68
PB68
Le Tout est souvent plus grand que la somme de ses parties.