How to make Ipython output a list without line breaks after elements?

后端 未结 3 446
孤独总比滥情好
孤独总比滥情好 2020-12-16 11:08

The IPython console prints a list of elements with line breaks so that each element is displayed in its own line. This is usually a feature, but in my case it is a bug: I ne

相关标签:
3条回答
  • 2020-12-16 11:29

    You can use %pprint command to turn on/off pprint feature:

    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]
    

    If you want to turn off pprint permanently, make a profile, and add c.PlainTextFormatter.pprint = False to the profile file.

    Linux example:

    $ 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
    
    0 讨论(0)
  • 2020-12-16 11:30

    Start ipython with --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']
    

    Another options is to start ipython with --classic option, in that pprint is already disabled:

    $ 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 讨论(0)
  • 2020-12-16 11:38

    An alternative to turning off pretty printing entirely is to increase the max_width trait for the PlainTextFormatter.

    Add the following to ipython_config.py (find it by ipython locate profile):

    c.PlainTextFormatter.max_width = 120
    

    which will allow the pretty printer to use less vertical space by allowing lines to extend out to 120 characters rather than the default of 79.

    0 讨论(0)
提交回复
热议问题