Что эквивалентно php print_r () в python? - PullRequest
75 голосов
/ 03 февраля 2010

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

Ответы [ 9 ]

51 голосов
/ 03 февраля 2010

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

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

Например

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

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

11 голосов
/ 20 мая 2013

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

print repr(variable)

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

print( repr(variable) )
6 голосов
/ 18 декабря 2014
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 голосов
/ 02 августа 2013

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

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

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

pip install var_dump

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

5 голосов
/ 03 февраля 2010

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

2 голосов
/ 08 декабря 2010

есть print_r для питона https://github.com/marcbelmont/python-print_r/wiki но лучше использовать стандартные модули

0 голосов
/ 30 апреля 2019
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)]

0 голосов
/ 08 марта 2017

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

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

def add_comment(request, id):
return HttpResponse(id)
0 голосов
/ 23 ноября 2016

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

s = repr(variable)

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

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

if hasattr(variable, "__dict__"):
    s = "{}: {}".format(variable, vars(variable))
else:
    s = repr(variable)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...