Was ist das Äquivalent von PHPs print_r () in Python?

81

Oder gibt es eine bessere Möglichkeit, den Inhalt eines Arrays schnell auszugeben (mehrdimensional oder was nicht). Vielen Dank.

verstricken
quelle
4
Sollte in der Frage erklärt werden, aber: php.net/print_r
AJ.
1
Mark: Dies ist eine PHP-Funktion, die den Inhalt aller Variablen, einschließlich Arrays oder Objekte, auf dem Bildschirm anzeigt.
Álvaro González
print_r ist eine Funktion in PHP, die ein beliebiges Dimensionsarray in einem Format ausgeben kann, das die Schlüssel und Werte anzeigt.
Waleed Amjad
Sehen Sie die am höchsten bewertete Antwort (nicht die akzeptierte Antwort) auf stackoverflow.com/questions/192109/…
cwd
3
Nein, es sollte nicht in Frage gestellt werden. Es erfordert lediglich Grundkenntnisse in PHP und Python. Wenn Sie die Frage nicht verstehen, ist sie keine Frage für Sie.
Tishma

Antworten:

52

Die Python- Print- Anweisung kann Multidimesion-Arrays gut formatieren, ohne dass print_r in PHP verfügbar sein muss.

Da die Definition für print besagt, dass jedes Objekt in eine Zeichenfolge konvertiert wird und einfache Arrays ein '[' gefolgt von einer durch Kommas getrennten Liste von Objektwerten gefolgt von einem ']' drucken, funktioniert dies für jede Tiefe und Form von Arrays .

Zum Beispiel

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

Wenn Sie eine erweiterte Formatierung benötigen, ist die Antwort von AJ , die pprint vorschlägt, wahrscheinlich der richtige Weg.

Robert Christie
quelle
9
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)
Mukesh Chapagain
quelle
7

Hier ist eine, die du ausprobieren kannst:

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

Sie können es einfach mit installieren pip

pip install var_dump

Haftungsausschluss: Ich habe es geschrieben :)

sha256
quelle
5

printund pprinteignen sich hervorragend für integrierte Datentypen oder Klassen, die eine gesunde Objektdarstellung definieren. Wenn Sie einen vollständigen Speicherauszug beliebiger Objekte wünschen, müssen Sie Ihre eigenen rollen. Das ist nicht so schwer: Erstellen Sie einfach eine rekursive Funktion, wobei der Basisfall ein beliebiger nicht in den Container integrierter Datentyp ist und der rekursive Fall die Funktion auf jedes Element eines Containers oder jedes Attribut des Objekts anwendet, das abgerufen werden kann mit dir()oder das inspectModul.

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

print(my_list)

Druckt [(0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8) , (8, 9)]

Stephan van der Hulst
quelle
0

Wenn Sie variableals Zeichenfolge formatieren möchten, haben Sie folgende Möglichkeiten:

s = repr(variable)

Es funktioniert unabhängig vom Typ und erfordert keine Importe.

Wenn Sie den Inhalt eines Objekts zusammen mit seinem Typ in eine einzelne Zeichenfolge aufnehmen möchten:

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

Für einfache Testansichten verwende ich HttpResponse. Testanforderung von Formular, Variable, Zeichenfolge, ID, nicht Objekt

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

def add_comment(request, id):
return HttpResponse(id)
Ivan Pirus
quelle