Как заставить Ipython выводить список без разрывов строк после элементов?

Консоль IPython выводит список элементов с разрывами строк, чтобы каждый элемент отображался в отдельной строке. Обычно это функция, но в моем случае это ошибка: мне нужно копировать и вставлять длинные списки, поэтому мне нужно компактное представление. Как я могу этого добиться?


person clstaudt    schedule 25.09.2013    source источник
comment
Если вы print thelist, он будет отображаться в стандартном формате Python.   -  person Thomas K    schedule 25.09.2013


Ответы (3)


Вы можете использовать команду %pprint для включения/выключения функции pprint:

In [1]: range(24)
Out[1]:
[0,
 1,
 2,
 ...
 21,
 22,
 23]

In [2]: %pprint
Pretty printing has been turned OFF

In [3]: range(24)
Out[3]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]

Если вы хотите навсегда отключить pprint, создайте профиль и добавьте c.PlainTextFormatter.pprint = False в файл профиля.

Пример линукса:

$ ipython profile create
[ProfileCreate] Generating default config file: '.../ipython_config.py'
[ProfileCreate] Generating default config file: u'..../ipython_notebook_config.py'
$ echo 'c.PlainTextFormatter.pprint = False' >> ~/.ipython/profile_default/ipython_config.py
person falsetru    schedule 25.09.2013

Начните ipython с опцией --no-pprint.

$ ipython --no-pprint
...
IPython 0.13.2 -- An enhanced Interactive Python.
...
In [1]: lis = ['a'*10]*10

In [2]: lis
Out[2]: ['aaaaaaaaaa', 'aaaaaaaaaa', 'aaaaaaaaaa', 'aaaaaaaaaa', 'aaaaaaaaaa', 'aaaaaaaaaa', 'aaaaaaaaaa', 'aaaaaaaaaa', 'aaaaaaaaaa', 'aaaaaaaaaa']

Другой вариант — запустить ipython с параметром --classic, в котором pprint уже отключен:

$ ipython --classic
...
IPython 0.13.2 -- An enhanced Interactive Python.
...
>>> lis = ['a'*10]*10
>>> lis
['aaaaaaaaaa', 'aaaaaaaaaa', 'aaaaaaaaaa', 'aaaaaaaaaa', 'aaaaaaaaaa', 'aaaaaaaaaa', 'aaaaaaaaaa', 'aaaaaaaaaa', 'aaaaaaaaaa', 'aaaaaaaaaa']
person Ashwini Chaudhary    schedule 25.09.2013
comment
Кстати, IPython 1.1.0 отсутствует , у меня пока с этим проблем не было... - person MattDMo; 25.09.2013

Альтернативой полному отключению красивой печати является увеличение черты max_width для PlainTextFormatter.

Добавьте следующее к ipython_config.py (найдите его по ipython locate profile):

c.PlainTextFormatter.max_width = 120

что позволит красивому принтеру использовать меньше вертикального пространства, позволяя строкам расширяться до 120 символов, а не 79 по умолчанию.

person Josh Bode    schedule 25.10.2017