Vitesse des boucles
Bien sûr, set est mieux adapté à la recherche d'éléments. Il repose sur des hachages, donc vous pouvez vous attendre la plupart du temps à une complexité constante. Mais qu'en est-il de l'itération sur tous les éléments de l'objet? Comparons la vitesse d'itération en boucle sur les éléments d'une list et d'un set avec pytest et pytest-benchmark. Le paquet pytest a déjà été importé.
Cette activité fait partie du cours
Introduction aux tests en Python
Instructions de l’exercice
- Ajoutez le décorateur
@benchmarkavant les fonctions qui commencent pariterate_. - Complétez les boucles dans
iterate_listetiterate_set.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
def test_list(benchmark):
# Add decorator here
@____
def iterate_list():
# Complete the loop here
____ in [i for i in range(1000)]:
pass
def test_set(benchmark):
# Add decorator here
____
def iterate_set():
# Complete the loop here
____ in {i for i in range(1000)}:
pass