Або є кращий спосіб швидко вивести вміст масиву (багатовимірний чи що ні). Дякую.
Або є кращий спосіб швидко вивести вміст масиву (багатовимірний чи що ні). Дякую.
Відповіді:
Заява python print добре виконує форматування багатовимірних масивів, не вимагаючи print_r, доступного у php.
Оскільки у визначенні для друку зазначено, що кожен об’єкт перетворюється на рядок, а оскільки прості масиви друкують символ [[', за яким слідує розділений комами список значень об’єктів, після якого йде знак]], це буде працювати для будь-якої глибини та форми масивів. .
Наприклад
>>> x = [[1,2,3],[4,5,6]]
>>> print x
[[1, 2, 3], [4, 5, 6]]
Якщо вам потрібно більш досконале форматування, ніж це, відповідь AJ, в якій випливає, що pprint - це, мабуть, шлях.
Ви шукали reprвбудовану функцію.
http://docs.python.org/2/library/functions.html#func-repr
print repr(variable)
У Python 3 printце вже не оператор, тому це буде:
print( repr(variable) )
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)
ось один ви можете спробувати:
https://github.com/sha256/python-var-dump
Ви можете встановити його просто за допомогою pip
pip install var_dump
застереження: я це написав :)
printі pprintчудово підходять для вбудованих типів даних або класів, які визначають розумне представлення об’єкта. Якщо вам потрібен повний дамп довільних об’єктів, вам доведеться скотити власні. Це не так складно: просто створіть рекурсивну функцію, при цьому базовий випадок - це будь-який неконтейнерний вбудований тип даних, а рекурсивний випадок застосовує функцію до кожного елемента контейнера або кожного атрибута об’єкта, який можна отримати за dir()допомогою inspectмодуля.
є print_r для python https://github.com/marcbelmont/python-print_r/wiki, але краще використовувати стандартні модулі
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)]
якщо ви хочете відформатувати variableяк рядок, ви можете зробити:
s = repr(variable)
він працює незалежно від типу та не вимагає імпорту.
Якщо ви хочете включити вміст об’єкта в один рядок разом із його типом:
if hasattr(variable, "__dict__"):
s = "{}: {}".format(variable, vars(variable))
else:
s = repr(variable)
Для простих тестових подань я використовую HttpResponse. Запит на тестування із форми, змінної, рядка, ідентифікатора, а не об’єкта
from django.http.response import HttpResponse
HttpResponse(variable)
def add_comment(request, id):
return HttpResponse(id)