Bonjour cher forum,
je débute en python, et pour m'entrainer, je fais les exercices proposés par checkio.
voici ce que la définition doit faire (regrouper en sous-liste les éléments égaux consécutifs):
Mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 group_equal([1, 1, 4, 4, 4, "hello", "hello", 4]) == [[1,1],[4,4,4],["hello","hello"],[4]] group_equal([1, 2, 3, 4]) == [[1], [2], [3], [4]] group_equal([1]) == [[1]] group_equal([]) == []
C'est sans doute pas le meilleur loin de là, j'en suis bien conscient
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 def group_equal(els): tab = [] tab_final = [] a = els[0] for i in els: if i == a: tab.append(i) else: tab_final.append(tab) tab.clear() tab.append(i) a = i return tab_final if __name__ == '__main__': print("Example:") print(group_equal([1, 1, 4, 4, 4, "hello", "hello", 4]))
Je ne comprends pas le résultat que j'obtiens:
Pourquoi ma méthode .append n'ajoute pas correctement la liste tab à tab_final... Je cherche depuis des heures et ne trouve pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Example: [[4], [4], [4]]
Je sais par ailleur qu'il me manque la dernière boucle, mais ca je pense pouvoir me débrouiller pour trouver une solution.
Une ame charitable pour m'éclaircir?
Merci beaucoup![]()
Partager