2016-08-20 2 views
-1

Ich versuche Pythons pprint auf ein Wörterbuch zu verwenden, aber aus irgendeinem Grund funktioniert es nicht. Hier ist mein Code (I PyCharm Pro als meine IDE bin mit): `PPrint funktioniert nicht (Python)?

from pprint import pprint 
message = "Come on Eileen!" 
count = {} 

for character in message: 
    count.setdefault(character, 0) 
    count[character] += 1 

pprint(count) 

Und hier ist meine Ausgabe:

{' ': 2, '!': 1, 'C': 1, 'E': 1, 'e': 3, 'i': 1, 'l': 1, 'm': 1, 'n': 2, 'o': 2} 

Jede mögliche Hilfe bei diesem würde geschätzt.

+1

Was macht Sie denken, es nicht funktioniert? Was hast du stattdessen erwartet? Das ist die richtige Ausgabe für 'pprint()'; Der Ausgang passt auf eine Zeile. –

+0

Ich lese durch Automate the Boring Stuff mit Python, in Kapitel 5 spricht es über pprint, gibt ein Beispiel für Code (fast identisch mit mir) aber zeigt, um Schlüssel-Paar-Werte auszugeben, die in separaten Zeilen gedruckt werden. * (Ich habe gerade erkannt, dass der Grund dafür nicht war, dass meine Saite nicht lang genug war) –

Antwort

3

Die Ausgabe ist vollständig korrekt und erwartet. Vom pprint module documentation:

Die formatierte Darstellung hält Objekte in einer einzigen Zeile, wenn es kann, und bricht sie auf mehrere Zeilen, wenn sie innerhalb der erlaubten Breite nicht passen.

Fett Hervorhebung meins.

Sie könnten das width Stichwort Argument 1 gesetzt jedes Schlüssel-Wert-Paar zu zwingen, in einer separaten Zeile gedruckt wird:

>>> pprint(count, width=1) 
{' ': 2, 
'!': 1, 
'C': 1, 
'E': 1, 
'e': 3, 
'i': 1, 
'l': 1, 
'm': 1, 
'n': 2, 
'o': 2}