TGViewer
Плюшевый Питон Плюшевый Питон @plush_python · 681 subscribers
Post #21 479
Как удобно выводить на экран вложенные структуры?
#py_basic

Иногда приходится иметь дело со сложными питоновскими структурами данных: например, у нас есть список словарей, в котором ключи являются кортежами, а значения списками. Что делать, если нужно быстро разобраться, как организованы подобные данные? Можно использовать дебаггер, но иногда это бывает неудобно. Что если нам просто хочется быстро и красиво вывести данные на экран?

Рассмотрим простой пример (скриншот 1). Выводить сложную структуру на экран "в лоб" обычным вызовом print не всегда наглядно - данные отображаются в одну строку, их структуру довольно сложно считать.

В качестве альтернативы можно применить стандартный модуль pprint (сокращённое pretty print). Становится чуть лучше (скриншот 2). Кстати, из функции pprint.pprint / pprint.pp можно легко записывать в файл, а отображение данных можно настраивать с помощью аргументов. На RealPython даже целый тьюториал про это написали:
https://realpython.com/python-pretty-print/

Есть ещё один чуть менее очевидный способ - воспользоваться преобразованием данных в формат строки JSON с отступами (скриншот 3). У этого подхода есть свои существенные ограничения, но иногда бывает очень удобно. Лично мне форматирование стандартных питоновских структур данных в json.dumps нравится больше, чем использование pprint.pprint.

В качестве бонуса - полезно знать о сторонней библиотеке rich, в которой есть функция print с таким же интерфейсом, как и стандартный питоновский print. Отличие в том, что rich при выводе на экран раскрашивает в разные цвета числа, строки, булевы значения и т.д. (скриншот 4). Это, конечно, не решает проблему вывода на экран сложных структур с глубокой вложенностью, но иногда помогает легче считывать то, что выводится на экран, особенно в консоли. А для сложных структур в rich есть свой pprint (скриншот 5).
More from @plush_python
  1. Sep 23, 2026Успел немного потестировать Opus 5.5 в Claude Code, хочу поделиться впечатлениями. Если чт…
  2. Sep 9, 2026Ща буит суперспорный тейк, провоцирующий на холивар, но не зря же я комменты отключал - мо…
  3. Sep 3, 2026Поднимаю (с помощью Kimi K3) с колен свой долгострой многолетний пет-проект, о котором пис…
  4. Aug 28, 2026Автоматизации рутины Поделюсь некоторыми автоматизациями, которые настроил для себя в ИИ-а…
  5. Aug 25, 2026Личная подписка на Kimi Активно использую Codex, но на днях решил поэкспериментировать с к…
  6. Jun 9, 2026ИИ надо использовать так, чтобы было не заметно, что вы использовали ИИ
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →