2017-02-12 3 views
2

質問

IPythonが垂直方向のリストを表示することを決定(および多くをスクロールするあなたを強制的に)リストの可視化を制御します。以下を参照は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でこの動作を制御する方法はありますか?私はオンラインで何かを見つけることができませんでした。たぶん私は悪いキーワードを使用しています。

事後の重複

いいえ。私が答えを得たので、私はこの質問がHow to make Ipython output a list without line breaks after elements?の重複であることも知った(pprintキーワードを使って)ことも分かった。

答えて

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

ありがとうございます。振る舞いは '%pprint'でした。私はPython 3を使用しているので、 'range'オブジェクトから' list 'を構築する必要があります。 – Atcold

0

pprintのpformat関数を試してみることができます。

0

ちょうどprintを使用して回避できます。

しかし、問題は、IPython対話型端末の最大線幅の設定に関係しています。

ipythonのデフォルト設定ディレクトリ(通常は~/.ipython/profile_default/にあります)にIPython設定ファイルipython_config.pyを編集または作成するだけです。次の行を追加して、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を参照してください。