Что эквивалентно php print_r() в python?

Или есть лучший способ быстро выводить содержимое массива (многомерное, а что нет). Спасибо.

Ответ 1

Оператор печати python отлично справляется с форматированием многомерных массивов, не требуя print_r, доступного в php.

Поскольку определение print гласит, что каждый объект преобразуется в строку, а простые массивы выводят '[', за которым следует разделенный запятыми список значений объекта, за которым следует '], это будет работать для любой глубины и формы массивов.,

Например

>>> x = [[1,2,3],[4,5,6]]
>>> print x
[[1, 2, 3], [4, 5, 6]]

Если вам нужно более продвинутое форматирование, чем этот, ответ AJ, предлагающий pprint, вероятно, поможет.

Ответ 3

Вы искали встроенную функцию repr.
http://docs.python.org/2/library/functions.html#func-repr

print repr(variable)

В Python 3 print больше не является оператором, так что это будет:

print( repr(variable) )

Ответ 4

from pprint import pprint

student = {'Student1': { 'Age':10, 'Roll':1 }, 
           'Student2': { 'Age':12, 'Roll':2 }, 
           'Student3': { 'Age':11, 'Roll':3 }, 
           'Student4': { 'Age':13, 'Roll':4 }, 
           'Student5': { 'Age':10, 'Roll':5 }
           }

pprint(student)

Ответ 5

print и pprint отлично подходят для встроенных типов данных или классов, которые определяют представление объектного объекта. Если вам нужен полный дамп произвольных объектов, вам придется катиться самостоятельно. Это не так сложно: просто создайте рекурсивную функцию с базовым случаем, являющимся любым неконтейнерным встроенным типом данных, и рекурсивным случаем, применяющим эту функцию к каждому элементу контейнера или каждому атрибуту объекта, который можно получить используя модуль dir() или inspect.

Ответ 6

вот тот, который вы можете попробовать:

https://github.com/sha256/python-var-dump

Вы можете установить его просто используя pip

pip install var_dump

отказ от ответственности: я написал это :)

Ответ 8

если вы хотите отформатировать variable как строку, которую вы можете сделать:

s = repr(variable)

работает независимо от типа и не требует импорта.

Если вы хотите включить содержимое объекта в одну строку вместе с его типом:

if hasattr(variable, "__dict__"):
    s = "{}: {}".format(variable, vars(variable))
else:
    s = repr(variable)

Ответ 9

Для простых тестовых представлений я использую HttpResponse. Тестирование запроса из формы, переменной, строки, id, а не объекта

from django.http.response import HttpResponse
HttpResponse(variable)

def add_comment(request, id):
return HttpResponse(id)

Ответ 10

my_list = list(enumerate([1,2,3,4,5,6,7,8,9],0))

print(my_list)

Будет напечатано [(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9)]