Как отсортировать по значениям словарь
Распространена практика использования словарей в качестве таблиц для хранения данных. Сортировка данных словаря по значениям ключей, а не самим ключам, нередко ставит в тупик. Задача решается довольно просто при помощи соответствующего аргумента функции сортировки
#theory // Just Python
Распространена практика использования словарей в качестве таблиц для хранения данных. Сортировка данных словаря по значениям ключей, а не самим ключам, нередко ставит в тупик. Задача решается довольно просто при помощи соответствующего аргумента функции сортировки
#theory // Just Python
Антипаттерн недели: Использование вложенных циклов для обработки больших данных
Вложенные циклы при обработке больших объёмов данных значительно снижают производительность, особенно если внутри вложенного цикла выполняются сложные операции. Это приводит к избыточному времени выполнения программы.
Используйте встроенные функции и методы, такие как
#theory // Just Python
Вложенные циклы при обработке больших объёмов данных значительно снижают производительность, особенно если внутри вложенного цикла выполняются сложные операции. Это приводит к избыточному времени выполнения программы.
Используйте встроенные функции и методы, такие как
zip
, enumerate
или библиотеку numpy
, чтобы сократить количество циклов.#theory // Just Python
Антипаттерн недели: Неоптимальная фильтрация данных через циклы
Использование обычных циклов для фильтрации данных в списках или других коллекциях может быть неэффективным и затрудняет читаемость кода. Это особенно актуально, когда в Python уже есть встроенные средства для таких задач.
Используйте встроенные функции, такие как
#theory // Just Python
Использование обычных циклов для фильтрации данных в списках или других коллекциях может быть неэффективным и затрудняет читаемость кода. Это особенно актуально, когда в Python уже есть встроенные средства для таких задач.
Используйте встроенные функции, такие как
filter()
или list comprehension
, чтобы сделать код более читаемым и производительным.#theory // Just Python
sys.getrefcount()
Метод
#theory // Just Python
Метод
sys.getrefcount()
позволяет получить количество ссылок на объект. Это полезно для анализа работы сборщика мусора и управления памятью в Python.#theory // Just Python
asyncio.gather()
Метод
#theory // Just Python
Метод
asyncio.gather()
из модуля asyncio
позволяет запускать несколько асинхронных задач одновременно и ожидать их завершения. Это удобный инструмент для работы с конкурентным выполнением задач.#theory // Just Python
inspect.getclosurevars()
Метод
#theory // Just Python
Метод
inspect.getclosurevars()
из модуля inspect
позволяет извлечь значения замыканий из функции. Это полезно для анализа внутреннего состояния функций с замыканиями.#theory // Just Python
weakref.WeakValueDictionary()
#theory // Just Python
weakref.WeakValueDictionary
из модуля weakref
создаёт словарь, где значения являются слабой ссылкой на объекты. Это полезно для кэширования данных, которые должны автоматически удаляться, когда больше нет других ссылок на объект.#theory // Just Python
traceback.format_exc()
Метод
#theory // Just Python
Метод
traceback.format_exc()
из модуля traceback
используется для получения форматированной строки трассировки исключения. Это полезно для логирования ошибок или их анализа.#theory // Just Python
os.getpid()
Метод
#theory // Just Python
Метод
os.getpid()
возвращает идентификатор текущего процесса. Это полезно для отладки и мониторинга выполнения программ.#theory // Just Python
uuid.uuid4()
Метод
#theory // Just Python
Метод
uuid.uuid4()
из модуля uuid
генерирует случайный UUID (универсально уникальный идентификатор), основанный на случайных данных. Это полезно для создания уникальных идентификаторов для объектов.#theory // Just Python
pathlib.Path.exists()
Метод
#theory // Just Python
Метод
pathlib.Path.exists()
используется для проверки существования файла или директории. Это удобный способ работы с файловой системой в Python.#theory // Just Python
secrets.token_hex()
Метод
#theory // Just Python
Метод
secrets.token_hex()
используется для генерации безопасных случайных токенов. Это полезно для создания уникальных идентификаторов, паролей или API-ключей.#theory // Just Python
Антипаттерн недели: Использование mutable default arguments
В Python опасно использовать изменяемые объекты (списки, словари, множества) как значения по умолчанию в аргументах функций. Это приводит к непредсказуемому поведению, так как объект создаётся один раз при определении функции и сохраняет своё состояние между вызовами.
Используйте
#theory // Just Python
В Python опасно использовать изменяемые объекты (списки, словари, множества) как значения по умолчанию в аргументах функций. Это приводит к непредсказуемому поведению, так как объект создаётся один раз при определении функции и сохраняет своё состояние между вызовами.
Используйте
None
в качестве значения по умолчанию и создавайте новый объект внутри функции.#theory // Just Python
threading.Timer()
Метод
#theory // Just Python
Метод
threading.Timer()
позволяет создавать таймеры, которые выполняют определенную функцию через заданный интервал времени. Это полезно для отложенного выполнения задач без блокировки основного потока.#theory // Just Python
functools.singledispatch
Метод
#theory // Just Python
Метод
functools.singledispatch
позволяет создавать перегруженные функции на основе типа первого аргумента. Это полезно для написания обобщённого кода без сложных if isinstance(...)
.#theory // Just Python
sys.setprofile()
Метод
#theory // Just Python
Метод
sys.setprofile()
позволяет установить функцию профилирования, которая вызывается при каждом вызове, возврате или исключении в Python-коде. Это полезно для отладки, анализа производительности и трассировки выполнения кода.#theory // Just Python
contextlib.ExitStack
#theory // Just Python
contextlib.ExitStack
позволяет управлять несколькими контекстными менеджерами динамически.#theory // Just Python
pathlib.Path.read_text()
#theory // Just Python
pathlib.Path.read_text()
— удобный способ прочитать содержимое текстового файла в строку. Этот метод автоматически открывает файл, читает его содержимое и закрывает его после чтения.#theory // Just Python
sys.call_tracing()
#theory // Just Python
sys.call_tracing()
позволяет выполнить функцию с заданными аргументами, включая трассировку вызовов, установленную через sys.settrace()
. Это полезно для профилирования и отладки.#theory // Just Python
dataclasses.astuple()
#theory // Just Python
dataclasses.astuple()
преобразует объект dataclass в неизменяемый кортеж, что удобно для сериализации и работы с неизменяемыми структурами.#theory // Just Python