PLUSH_PYTHON Telegram 23
Как удобно выводить на экран вложенные структуры?
#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).



tgoop.com/plush_python/23
Create:
Last Update:

Как удобно выводить на экран вложенные структуры?
#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).

BY Плюшевый Питон








Share with your friend now:
tgoop.com/plush_python/23

View MORE
Open in Telegram


Telegram News

Date: |

Hui said the time period and nature of some offences “overlapped” and thus their prison terms could be served concurrently. The judge ordered Ng to be jailed for a total of six years and six months. A Hong Kong protester with a petrol bomb. File photo: Dylan Hollingsworth/HKFP. The Standard Channel best-secure-messaging-apps-shutterstock-1892950018.jpg Telegram Channels requirements & features
from us


Telegram Плюшевый Питон
FROM American