Roby Leahy Roby Leahy - 1 year ago 107
Python Question

PPrint not working (Python)?

I'm trying to use Python's

on a dictionary but for some reason it isn't working. Here's my code (I'm using PyCharm Pro as my IDE):`

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

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


And here's my output:

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

Any help with this would be appreciated.

Answer Source

The output is entirely correct and expected. From the pprint module documentation:

The formatted representation keeps objects on a single line if it can, and breaks them onto multiple lines if they don’t fit within the allowed width.

Bold emphasis mine.

You could set the width keyword argument to 1 to force every key-value pair being printed on a separate line:

>>> pprint(count, width=1)
{' ': 2,
 '!': 1,
 'C': 1,
 'E': 1,
 'e': 3,
 'i': 1,
 'l': 1,
 'm': 1,
 'n': 2,
 'o': 2}
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download