In PHP kann ich das tun:
echo '<pre>'
print_r($array);
echo '</pre>'
In Python mache ich derzeit nur Folgendes:
print the_list
Dies führt jedoch zu einem großen Datenvolumen. Gibt es eine Möglichkeit, es schön in einen lesbaren Baum zu drucken? (mit Einrückungen)?
import pprint
?pprint.pprint(the_list)
normalerweise verwenden, es ist nur eine Frage der persönlichen Präferenz. In diesem Fall habe ich mich für die zusätzliche Unordnung in der Importzeile entschieden.stream=
, der Standardwert ist stdout. docs.python.org/3/library/pprint.htmlEin schneller Hack beim Debuggen, der ohne Import funktioniert,
pprint
wäre, sich der Liste anzuschließen'\n'
.quelle
None
.print '\n'.join(map(str, lst))
Einfach durch "Entpacken" der Liste im Argument der Druckfunktion und Verwenden eines Zeilenumbruchs (\ n) als Trennzeichen.
print (* lst, sep = '\ n')
quelle
from __future__ import print_function
Vielen Dank für den Kommentar.Du meinst so etwas wie ...:
...? Aus Ihrer kursorische Beschreibung Standardbibliotheksmodul pprint ist das erste , was in den Sinn kommt; Wenn Sie jedoch Beispiel-Ein- und Ausgänge beschreiben können (damit Sie nicht PHP lernen müssen, um Ihnen zu helfen ;-), können wir möglicherweise spezifischere Hilfe anbieten!
quelle
Ausgabe:
quelle
https://docs.python.org/3/library/pprint.html
Wenn Sie den Text benötigen (zum Beispiel zur Verwendung mit Flüchen):
Dann wird
myText
Variable etwas ähnliches phpvar_dump
oderprint_r
. Weitere Optionen und Argumente finden Sie in der Dokumentation.quelle
Wie die anderen Antworten vermuten lassen, macht das pprint- Modul den Trick.
Dennoch bei dem Debuggen , wo Sie benötigen könnten die gesamte Liste in eine Protokolldatei zu setzen, könnte man pFormat Methode zu verwenden , zusammen mit Modul hat Protokollierung zusammen mit pprint.
Und wenn Sie es direkt in einer Datei protokollieren müssen, müssen Sie einen Ausgabestream mit dem Schlüsselwort stream angeben. Ref
Siehe Stefano Sanfilippos Antwort
quelle
Für Python 3 mache ich dasselbe wie die Antwort von shxfee :
welche Ausgänge
Nebenbei benutze ich eine ähnliche Hilfsfunktion, um schnell Spalten in einem Pandas DataFrame zu sehen
quelle
Wie andere Antworten bereits erwähnt haben,
pprint
ist es ein großartiges Modul, das macht, was Sie wollen. Wenn Sie es jedoch nicht importieren und nur die Debugging-Ausgabe während der Entwicklung drucken möchten, können Sie die Ausgabe approximieren.Einige der anderen Antworten funktionieren gut für Zeichenfolgen, aber wenn Sie sie mit einem Klassenobjekt versuchen, erhalten Sie den Fehler
TypeError: sequence item 0: expected string, instance found
.Stellen Sie bei komplexeren Objekten sicher, dass die Klasse über eine
__repr__
Methode verfügt, mit der die gewünschten Eigenschaftsinformationen gedruckt werden:Wenn Sie dann die Ausgabe drucken möchten, ordnen Sie Ihre Liste einfach der folgenden
str
Funktion zu:Ausgänge:
Sie können auch die
__repr__
Methode überschreibenlist
, um eine Form des verschachtelten hübschen Druckens zu erhalten:gibt
Leider kein Einzug der zweiten Ebene, aber für ein schnelles Debuggen kann es nützlich sein.
quelle
Sie können auch Ihre Liste durchlaufen:
quelle