Incompréhension méthode append
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):
Code:
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([]) == [] |
Mon code:
Code:
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])) |
C'est sans doute pas le meilleur loin de là, j'en suis bien conscient :roll:
Je ne comprends pas le résultat que j'obtiens:
Code:
1 2
| Example:
[[4], [4], [4]] |
Pourquoi ma méthode .append n'ajoute pas correctement la liste tab à tab_final... Je cherche depuis des heures et ne trouve pas...
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 :D