Pour transformer et/ou filtrer les listes, Python propose un mécanisme inspiré du langage Haskell : les Comprehension lists. Soit les listes suivantes :
camelot = ["Arthur", "Merlin", "Lancelot", "Galahad", "Robin", "Karadoc"]
wizards = ['Merlin', "Tim"]
Nous pouvons obtenir une liste de la taille des éléments de la liste camelot
de la manière suivante :
[len(element) for element in camelot]
Nous pouvons obtenir la liste des chevaliers (éléments qui ne sont pas dans la liste wizards
) de la manière suivante :
[knight for knight in knights if knight not in wizards]
In [ ]:
medias = [["The Philosopher's Stone", True],
["The Chamber of Secrets", True],
["The Prisoner of Azkaban", False],
["the Goblet of Fire", True],
["the Order of the Phoenix", False],
["the Half-Blood Prince", True],
["the Deathly Hallows – Part 1", False],
["the Deathly Hallows – Part 2", False]]
In [ ]:
Générez et affichez une liste des titres des médias non visionnés.
In [ ]:
In [ ]:
movies = [["The Philosopher's Stone", 152, True],
["The Chamber of Secrets", 161, True],
["The Prisoner of Azkaban", 142, False],
["the Goblet of Fire", 157, True],
["the Order of the Phoenix", 138, False],
["the Half-Blood Prince", 153, True],
["the Deathly Hallows – Part 1", 126, False],
["the Deathly Hallows – Part 2", 130, False]]
À l'aide des comprehension lists et du modèle suivant, affichez le temps total pour un marathon Harry Potter.
In [ ]:
TIME_WATCHING = 'Il y a {}h{} à visionner.'
In [ ]:
Toujours à l'aide des comprehension lists et du modèle précédent, affichez le temps total des épisodes restant à voir.
In [ ]:
Enfin, intégrez ce code dans une fonction. Écrivez donc une fonction time_remaining
qui prend en paramètre une collection sur le format précédent et qui retourne un entier représentant le temps des épisodes restant à voir.
Afficher le temps total des épisodes restant à voir à l'aide de cette fonction, de la liste précédente et du template TIME_WATCHING
.
In [ ]: