PPrint не работает (Python)?

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

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}

Любая помощь в этом будет оценена по достоинству.


person Roby Leahy    schedule 20.08.2016    source источник
comment
Что заставляет вас думать, что это не работает? Что вы ожидали вместо этого? Это правильный вывод для pprint(); вывод помещается в одну строку.   -  person Martijn Pieters    schedule 21.08.2016
comment
Я читаю Automate the Boring Stuff with Python, в главе 5 рассказывается о pprint, приводится пример кода (почти идентичный моему), но показано, что на выходе значения пары ключей печатаются в отдельных строках. *(Я только что понял, что причина, по которой он этого не делал, заключалась в том, что моя строка была недостаточно длинной)   -  person Roby Leahy    schedule 21.08.2016


Ответы (3)


Результат полностью правильный и ожидаемый. Из pprint документации по модулю:

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

Жирный акцент мой.

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

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

Вы должны указать второй параметр, т.е.

pprint.pprint(count, width=1)

Или в вашем случае

pprint(count, width=1)

Выход:

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

У меня возникла та же проблема во время практики, затем я понял, что снова и снова запускаю старый файл characterCount.py вместо запуска нового файла Count.py красивого персонажа. Попробуйте нажать кнопку запуска вверху, выбрать нужный файл и запустить снова.

person Zhigang Tian    schedule 16.10.2019