Python - Join with newline

后端 未结 5 1169
Happy的楠姐
Happy的楠姐 2020-12-13 03:17

In the Python console, when I type:

>>> \"\\n\".join([\'I\', \'would\', \'expect\', \'multiple\', \'lines\'])

Gives:



        
相关标签:
5条回答
  • 2020-12-13 03:46

    You forgot to print the result. What you get is the P in RE(P)L and not the actual printed result.

    In Py2.x you should so something like

    >>> print "\n".join(['I', 'would', 'expect', 'multiple', 'lines'])
    I
    would
    expect
    multiple
    lines
    

    and in Py3.X, print is a function, so you should do

    print("\n".join(['I', 'would', 'expect', 'multiple', 'lines']))
    

    Now that was the short answer. Your Python Interpreter, which is actually a REPL, always displays the representation of the string rather than the actual displayed output. Representation is what you would get with the repr statement

    >>> print repr("\n".join(['I', 'would', 'expect', 'multiple', 'lines']))
    'I\nwould\nexpect\nmultiple\nlines'
    
    0 讨论(0)
  • 2020-12-13 03:49

    When you print it with this print 'I\nwould\nexpect\nmultiple\nlines' you would get:

    I
    would
    expect
    multiple
    lines
    

    The \n is a new line character specially used for marking END-OF-TEXT. It signifies the end of the line or text. This characteristics is shared by many languages like C, C++ etc.

    0 讨论(0)
  • 2020-12-13 03:55

    The console is printing the representation, not the string itself.

    If you prefix with print, you'll get what you expect.

    See this question for details about the difference between a string and the string's representation. Super-simplified, the representation is what you'd type in source code to get that string.

    0 讨论(0)
  • 2020-12-13 03:59

    You have to print it:

    In [22]: "\n".join(['I', 'would', 'expect', 'multiple', 'lines'])
    Out[22]: 'I\nwould\nexpect\nmultiple\nlines'
    
    In [23]: print "\n".join(['I', 'would', 'expect', 'multiple', 'lines'])
    I
    would
    expect
    multiple
    lines
    
    0 讨论(0)
  • 2020-12-13 04:06

    You need to print to get that output.
    You should do

    >>> x = "\n".join(['I', 'would', 'expect', 'multiple', 'lines'])
    >>> x                   # this is the value, returned by the join() function
    'I\nwould\nexpect\nmultiple\nlines'
    >>> print x    # this prints your string (the type of output you want)
    I
    would
    expect
    multiple
    lines
    
    0 讨论(0)
提交回复
热议问题