2016-08-20 6 views
-1

Я пытаюсь использовать Python's pprint в словаре, но по какой-то причине он не работает. Вот мой код (я использую PyCharm Pro, как мой IDE): `PPrint не работает (Python)?

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

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

pprint(count) 

А вот мой выход:

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

Любая помощь с этим была бы оценена.

+1

Что заставляет вас думать, что не работает? Что вы ожидали вместо этого? Это правильный вывод для 'pprint()'; выход соответствует одной строке. –

+0

Я читаю Automated the Boring Stuff с Python, в главе 5 он рассказывает о pprint, дает пример кода (почти идентичный моему), но показывает, что вывод будет иметь значения пары ключей, которые печатаются на отдельных строках. * (Я просто понял, почему это не было, потому что моя строка была недостаточно длинной) –

ответ

3

Выход полностью правильный и ожидаемый. Из pprint module documentation:

Отформатированная представление хранит объекты на одной линии, если она может, и разбивает их на несколько строк, если они не помещаются в пределах допустимой ширины.

Смелый акцент мой.

Вы можете установить аргумент width ключевое слово для 1, чтобы заставить каждую пару ключ-значение печатается на отдельной строке:

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