Вложенные циклы при обработке больших объёмов данных значительно снижают производительность, особенно если внутри вложенного цикла выполняются сложные операции. Это приводит к избыточному времени выполнения программы.
zip, enumerate или библиотеку numpy, чтобы сократить количество циклов.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13
Использование обычных циклов для фильтрации данных в списках или других коллекциях может быть неэффективным и затрудняет читаемость кода. Это особенно актуально, когда в Python уже есть встроенные средства для таких задач.
filter() или list comprehension, чтобы сделать код более читаемым и производительным.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Метод
traceback.format_exc() из модуля traceback используется для получения форматированной строки трассировки исключения. Это полезно для логирования ошибок или их анализа.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7😱1
Пояснение
Оператор is проверяет, указывают ли обе переменные на один и тот же объект в памяти. Переменные x и y ссылаются на один объект, поэтому x is y возвращает True. Переменная z — новый объект с тем же содержимым, но другой областью в памяти, поэтому x is z возвращает False.
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
👍11
Использование списков для проверки на принадлежность с оператором
in приводит к линейному времени выполнения, что может быть медленным для больших наборов данных.set для проверки на принадлежность, чтобы снизить время выполнения до O(1).Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15
Модуль
contextlib в Python позволяет обрабатывать несколько ресурсов с помощью менеджеров контекста более лаконично. Это полезно, когда работа идёт с большим числом файлов или объектов.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Изучили базу по Python и не знаете, как кодить еще лучше?
✅ Пройдите бесплатный курс по настройке инструментов Python в Академии Selectel.
Рассказываем, что изучать после основ и как не зациклиться на типовых навыках на старте. В программе курса:
🔸 освоим Python-инструменты для упрощения работы с кодом: SonarLint, Myry и другие;
🔸 протестируем библиотеку Tkinter, чтобы создавать приложения с графическим интерфейсом;
🔸 расскажем, как парсить данные с веб-сайтов и закрепить полученные знания на практике.
Все материалы бесплатные. Проходите курс в комфортном темпе в Академии Selectel: https://slc.tl/4vqkv
Реклама. АО "Селектел". erid:2W5zFG1xKC4
✅ Пройдите бесплатный курс по настройке инструментов Python в Академии Selectel.
Рассказываем, что изучать после основ и как не зациклиться на типовых навыках на старте. В программе курса:
🔸 освоим Python-инструменты для упрощения работы с кодом: SonarLint, Myry и другие;
🔸 протестируем библиотеку Tkinter, чтобы создавать приложения с графическим интерфейсом;
🔸 расскажем, как парсить данные с веб-сайтов и закрепить полученные знания на практике.
Все материалы бесплатные. Проходите курс в комфортном темпе в Академии Selectel: https://slc.tl/4vqkv
Реклама. АО "Селектел". erid:2W5zFG1xKC4
👍1
Метод
concurrent.futures.as_completed() позволяет обрабатывать завершение асинхронных задач в порядке их завершения. Это полезно для параллельной обработки, где важно начать работу с результатами, как только они готовы.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤔1
Метод
shutil.disk_usage() из модуля shutil предоставляет информацию о месте на диске, включая общий объём, используемое и доступное пространство. Это полезно для мониторинга состояния файловой системы.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Метод
itertools.permutations() генерирует все возможные перестановки элементов заданной последовательности. Это полезно для задач, связанных с комбинаторикой.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Метод
__slots__ позволяет явно указать, какие атрибуты может иметь объект класса, что значительно уменьшает потребление памяти и ускоряет доступ к атрибутам. Это особенно полезно при создании большого количества экземпляров класса.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Уже завтра(11 ноября) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.
Как это будет:
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot
Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как работает
weakref в Python, и когда его стоит использовать?Ответ
Пример использования
import weakref
class Data:
def __del__(self):
print("Объект удалён")
obj = Data()
weak_ref = weakref.ref(obj)
print(weak_ref()) # <__main__.Data object at 0x...>
del obj
print(weak_ref()) # None (объект удалён)
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
range(len()) вместо enumerate()В Python часто используют
range(len(lst)) для итерации по списку с индексами, но это снижает читаемость кода и не является идиоматичным способом перебора элементов.enumerate(), который позволяет одновременно получать индекс и значение элемента, делая код более читаемым и питоничным.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥1💔1
Метод
dis.Bytecode() из модуля dis позволяет анализировать байт-код Python-функций. Это полезно для оптимизации кода и понимания его работы на уровне интерпретатора.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
В Python опасно использовать изменяемые объекты (списки, словари, множества) как значения по умолчанию в аргументах функций. Это приводит к непредсказуемому поведению, так как объект создаётся один раз при определении функции и сохраняет своё состояние между вызовами.
None в качестве значения по умолчанию и создавайте новый объект внутри функции.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Метод
threading.Timer() позволяет создавать таймеры, которые выполняют определенную функцию через заданный интервал времени. Это полезно для отложенного выполнения задач без блокировки основного потока.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
dataclasses.astuple() преобразует объект dataclass в неизменяемый кортеж, что удобно для сериализации и работы с неизменяемыми структурами.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6😁1
inspect.getgeneratorstate() позволяет определить текущее состояние генератора. Это полезно при отладке и анализе работы генераторов в Python, чтобы понимать, активен ли генератор, завершён или ожидает ввода.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5