Скрытые фичи Enum: как выжать максимум
Многие используют Enum как простой список констант. Но у enum.Enum в Python есть куда больше возможностей — и они могут сделать код чище и м…
Читать далее →
Иногда в программе нужна очередь — контейнер, куда элементы добавляются с одной стороны и извлекаются с другой. В Python для этого можно использовать list:
In : lst = [1, 2, 3]
In…
Читать далее →
Некоторый код может выводить интересующие вас данные в stdout, вместо того чтобы предоставлять API, возвращающий строку, пригодную для использования в…
Некоторый код может выводить интересующие вас данные в stdout, вместо того чтобы предоставлять API, возвращающий строку, пригодную для использования в программе.
Вместо рефакторинга такого кода можно воспользоваться менеджером контекста contextlib.redirect_stdout, который позволяет временно перенаправить stdout в любой объект, поддерживающий файловый интерфейс. В сочетании с io.StringIO это позволяет сохранить вывод в переменную.
from contextlib import redirect_stdout
from io import StringIO
s = StringIO()
with redirect_stdout(s):
print(42)
print(s.getvalue())
Также существует contextlib.redirect_stderr для перенаправления вывода sys.stderr.
👉 @BookPython
Чтобы отсортировать словарь по его значениям, используйте функцию sorted с пользовательской функцией ключа:
>>> d = dict(a=1, c=3, b=2)
>>> sorted(d.items(), key=lambda item: item…
Читать далее →
⚠️ Можно знать алгоритмы машинного обучения и всё равно получать плохие результаты. Большинство проблем моделей начинаются с некачественной подготовки данных: пропуски, выбросы, шу…
Читать далее →