In the Python console, when I type:
>>> "\n".join(['I', 'would', 'expect', 'multiple', 'lines'])
Gives:
'I\nwould\nexpect\nmultiple\nlines'
Though I'd expect to see such an output:
I
would
expect
multiple
lines
What am I missing here?
To join a list with a newline character in Python: Call the join() method on a string containing a newline char ( '\n' ). Pass the list to the join method. The result will be a string containing the list items separated by a newline.
in a string prevents actually making a new line and instead of Type (new line) for a new line it is Type \n for a new line .
Check if a string contains newlines using the 'in' operator With the 'in' operator, we can check for a specified value in a string. However, this method returns True if the value exists. Otherwise, returns False.
In Windows, a new line is denoted using “\r\n”, sometimes called a Carriage Return and Line Feed, or CRLF. Adding a new line in Java is as simple as including “\n” , “\r”, or “\r\n” at the end of our string.
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.
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' 
                        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
                        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
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With