2013-09-25 12 views
14

Die IPython-Konsole druckt eine Liste von Elementen mit Zeilenumbrüchen, so dass jedes Element in einer eigenen Zeile angezeigt wird. Dies ist normalerweise ein Feature, aber in meinem Fall ist es ein Fehler: Ich muss lange Listen kopieren und einfügen, also brauche ich eine kompakte Darstellung. Wie kann ich das erreichen?Wie kann Ipython eine Liste ohne Zeilenumbrüche nach Elementen ausgeben?

+1

Wenn Sie die Liste drucken, wird sie im Standard-Python-Format angezeigt. –

Antwort

28

Sie %pprint Befehl verwenden können pprint Funktion ein-/ausschalten:

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] 

Wenn Sie pprint dauerhaft deaktivieren möchten, erstellen Sie ein Profil und fügen Sie c.PlainTextFormatter.pprint = False zur Profildatei hinzu.

Linux Beispiel:

$ 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 
5

Starten Sie ipython mit --no-pprint Option.

$ 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'] 

Weitere Optionen ist mit --classic Option starten ipython, dass pprint bereits deaktiviert ist:

$ 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'] 
+0

BTW, [IPython 1.1.0] (http://ipython.org/ipython-doc/rel-1.1.0/whatsnew/version1.0.html) ist out, ich hatte damit überhaupt keine Probleme weit ... – MattDMo

+0

@MattDMo Danke, wird in Kürze aktualisiert. ;-) –

0

Eine Alternative hübsch Ausschalten ganz Druck ist das max_width Merkmal für die PlainTextFormatter zu erhöhen.

Fügen Sie die folgenden ipython_config.py (es von ipython locate profile finden):

c.PlainTextFormatter.max_width = 120 

, die die hübsche Drucker weniger vertikalen Raum, der durch die Verwendung so dass Linien erstrecken sich auf 120 Zeichen statt der Standard von 79 ermöglicht.

Verwandte Themen