Скорость циклов
Разумеется, set лучше подходит для поиска элементов: он основан на хешировании, поэтому в большинстве случаев можно рассчитывать на константную сложность. Но что насчёт перебора всех элементов объекта? Давайте сравним скорость итерации по элементам list и set с помощью pytest и pytest-benchmark. Пакет pytest уже импортирован.
Это упражнение является частью курса
Введение в тестирование на Python
Инструкции к упражнению
- Добавьте декоратор
@benchmarkперед функциями, имена которых начинаются сiterate_. - Дополните циклы в функциях
iterate_listиiterate_set.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
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