| Учебный / наивный подход | Современный вариант | Почему так |
|---|---|---|
Измерять время через time.time() для микросекундных интервалов. | Для точных замеров использовать time.perf_counter(). | perf_counter() даёт наивысшее доступное разрешение и не зависит от системного времени. |
Создавать OrderedDict только ради сохранения порядка. | С Python 3.7+ обычный dict тоже сохраняет порядок; OrderedDict оставлять для move_to_end() и popitem(last=False). | Меньше импортов, но специальные методы всё ещё нужны для очередей. |
| Писать собственный словарь для кэширования результатов. | Использовать @lru_cache(maxsize=...) из functools. | Проверенная реализация LRU, статистика и управление размером из коробки. |
| Сортировать вложенными циклами и сравнениями. | Применять sorted(data, key=lambda x: ...). | Короче, читается как критерий сортировки, устойчивая сортировка сохраняет порядок равных. |
Писать def для одноразовой маленькой операции. | Использовать lambda для коротких выражений, но выносить сложную логику в def. | Читаемость важнее краткости. |
Проверить по документации: современные детали поведения встроенных функций, стандартной библиотеки и версии Python сверяйте с официальной документацией.