Il peut arriver que l’on souhaite extraire dans une liste simple (profondeur 1) les données stockées dans une architecture de listes arbitrairement imbriquées (profondeur n). A titre d’exemple, la liste ci dessous a une profondeur de 3 :
list_to_flatten = [1, [2, 3], [4, [5, 6]], 7, [], [8, 9]]
On souhaite obtenir :
flattened_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
On emploie le terme “aplatir” la liste (flatten en anglais).
Pour cet exercice, vous devez créer un fichier
python-06-listes-flatten-list.py
.
Selon la convention de structuration des modules, ce fichier sera structuré en quatre parties :
L’objectif est d’écrire une fonction récursive
flatten_list()
:
On portera attention :
Vérifier le bon fonctionnement de la fonction en effectuant un appel
depuis main()
et en affichant la valeur de retour.
Ecrire la docstring.
La fonction isinstance() permet de tester le type d’un objet.
Une fois la fonction opérationnelle pour quelques arguments, ET SEULEMENT DANS CE CAS, écrire quelques doctests et les lancer dans un terminal:
$ python -m doctest exercice.py -v
La totalité des doctests doivent réussir.