Czy jest lepszy sposób na szybkie wyprowadzenie zawartości tablicy (wielowymiarowej lub nie). Dzięki.
Czy jest lepszy sposób na szybkie wyprowadzenie zawartości tablicy (wielowymiarowej lub nie). Dzięki.
Odpowiedzi:
Instrukcja print w języku Python dobrze sobie radzi z formatowaniem tablic wielowymiarowych bez wymagania print_r dostępnego w php.
Ponieważ definicja print mówi, że każdy obiekt jest konwertowany na łańcuch, a proste tablice wypisują „[”, po których następuje rozdzielona przecinkami lista wartości obiektu, po której następuje „]”, będzie to działać dla dowolnej głębokości i kształtu tablic .
Na przykład
>>> x = [[1,2,3],[4,5,6]]
>>> print x
[[1, 2, 3], [4, 5, 6]]
Jeśli potrzebujesz bardziej zaawansowanego formatowania niż to, odpowiedź AJ sugerująca, że pprint jest prawdopodobnie najlepszym rozwiązaniem.
Ci szukali reprBult-in funkcji.
http://docs.python.org/2/library/functions.html#func-repr
print repr(variable)
W Pythonie 3 printnie jest już instrukcją, więc byłoby to:
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)
oto jeden, którego możesz spróbować:
https://github.com/sha256/python-var-dump
możesz go zainstalować po prostu za pomocą pip
pip install var_dump
zastrzeżenie: napisałem to :)
printi pprintświetnie nadają się do wbudowanych typów danych lub klas, które definiują rozsądną reprezentację obiektu. Jeśli chcesz mieć pełny zrzut dowolnych obiektów, będziesz musiał rzucić własne. To nie jest takie trudne: po prostu utwórz funkcję rekurencyjną, w której przypadek bazowy będzie dowolnym wbudowanym typem danych niebędącym kontenerem, a przypadek rekurencyjny zastosuj funkcję do każdego elementu kontenera lub każdego atrybutu obiektu, który można uzyskać za pomocą dir()lub inspectmodułu.
jest print_r dla pythona https://github.com/marcbelmont/python-print_r/wiki ale lepiej jest używać standardowych modułów
my_list = list(enumerate([1,2,3,4,5,6,7,8,9],0))
print(my_list)
Wydrukuje [(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8) , (8, 9)]
jeśli chcesz sformatować variablejako ciąg, możesz zrobić:
s = repr(variable)
działa niezależnie od typu i nie wymaga importu.
Jeśli chcesz zawrzeć zawartość obiektu w jednym ciągu wraz z jego typem:
if hasattr(variable, "__dict__"):
s = "{}: {}".format(variable, vars(variable))
else:
s = repr(variable)
Do prostych widoków testowych używam HttpResponse. Testowanie żądania z formularza, zmiennej, ciągu znaków, identyfikatora, a nie obiektu
from django.http.response import HttpResponse
HttpResponse(variable)
def add_comment(request, id):
return HttpResponse(id)