Вложенный цикл — это цикл внутри другого цикла. Его сложность часто достигает O(n*m) или хуже, что критично для больших наборов данных.
Оптимизации:
- замените поиск по списку на
set или dict;
- перемещать инварианты за пределы внутреннего цикла;
- используйте генераторы,
itertools или векторизацию;
- профилировать горячие пути.
Суммируя:
- Вложенные циклы быстро увеличивают вычислительные затраты.
- Структуры данных часто важнее микрооптимизации.
- Профилирование показывает, что на самом деле нуждается в оптимизации.
Итог
Вложенный цикл — это цикл внутри другого цикла.