当IPython比当前屏幕更宽时,它决定垂直显示列表(并强制你滚动很多)。见下文
In [1]: list(range(20))
Out[1]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
In [2]: list(range(30))
Out[2]:
[0,
1,
2,
...
27,
28,
29]
而Python始终水平显示它们。 有没有办法在IPython中控制这种行为?我在网上找不到任何东西。也许我一直在使用不好的关键字。
好的。现在我得到了答案,我还发现(使用pprint
关键字)此问题与How to make Ipython output a list without line breaks after elements?重复。
答案 0 :(得分:2)
您可以使用命令%pprint
来控制它。
正如你所写,
list(range(30))
产量
[0,
1,
2,
3,
4,
...
27,
28,
29]
如果您再输入
%pprint
您将阅读消息
Pretty printing has been turned OFF
然后
list(range(30))
变为:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
或者,您也可以输入
print(list(range(30))
也为您提供水平输出。
答案 1 :(得分:0)
您可以尝试使用pprint的pformat功能。
答案 2 :(得分:0)
您只需使用print
即可解决。
但是对于您的问题,它与IPython交互式终端的最大线宽设置有关。
只需在ipython默认配置目录中编辑或创建IPython配置文件ipython_config.py
(通常位于~/.ipython/profile_default/
)。添加以下行,然后在终端重新启动IPython。
c = get_config()
# the default is 79, modify it to any max line width you like
# list repr string larger than it will be wrapped to display vertically
c.PlainTextFormatter.max_width = 100
请参阅Introduction to IPython configuration和ipython: how to set terminal width。