Tail¶
But de l'éxercice¶
Le but de l'exercice est d'ecrire une fonction tail, dans un fichier tail.py dont le but est de retourner une liste
des N derniers elements d'une séquence donnée.
Et voila le script de tests unitaires: test_tail.py
Exercice de base¶
Ecrire une fonction tail qui prend 2 parametres: une sequence (liste, tuple ou string) et un entier n.
Faire en sorte de retourner les n derniers éléments de la sequence sous forme de liste.
>>> tail(["a", "b", "c", "d"], 1)
["d"]
>>> tail("abcd", 3)
["b", "c", "d"]
>>> tail(("a", "b", "c", "d"), 0)
[]
Bonus numéro 1¶
Faire en sorte que la fonction retourne une liste vide si le nombre n est negatif
>>> tail(("a", "b", "c", "d"), -3)
[]
Bonus numéro 2¶
Faire en sorte que la fonction puisse fonctionner avec n'import quel type d'iterable, par exemple:
>>> squares = (n**2 for n in range(10))
>>> tail(squares, 3)
[49, 64, 81]
Bonus numéro 3¶
Dire pourquoi il est inutile de faire retourner un iterable à la place d'une liste contrairement à l'exercice compact.
Aide¶
Si vraiment vous êtes bloqué.e.s, vous pouvez regarder ces articles:
- Getting the last n items from a sequence
- Turning iterables into lists
- Bonus 1: conditionals in Python
- How to loop over any iterable in Python
- A data structure that could help with bonus 2