Message167394
The documentation for str.splitlines()--
http://docs.python.org/dev/library/stdtypes.html#str.splitlines
includes a statement that is not quite correct:
"Unlike split(), if the string ends with line boundary characters the returned list does not have an empty last element."
For example,
>>> '\n'.splitlines()
['']
>>> '\n\n'.splitlines()
['', '']
>>> '\r\n'.splitlines()
['']
>>> '\n\r\n'.splitlines()
['', '']
>>> '\r'.splitlines()
['']
>>> 'a\n\n'.splitlines()
['a', '']
Also, the note about split() only applies when split() is passed a separator. For example--
>>> 'a\n'.split('\n')
['a', '']
>>> 'a\n'.split()
['a']
Finally, the function's behavior on the empty string is another difference worth mentioning that is not covered by the existing note.
I am attaching a patch that addresses these points. Notice also that the patch phrases it not as whether the list *has* an empty last element, but whether an *additional* last element should be added, which is the more important point. |
|
Date |
User |
Action |
Args |
2012-08-04 02:39:38 | chris.jerdonek | set | recipients:
+ chris.jerdonek, jcea, pitrou, docs@python |
2012-08-04 02:39:38 | chris.jerdonek | set | messageid: <1344047978.01.0.683229635888.issue15554@psf.upfronthosting.co.za> |
2012-08-04 02:39:37 | chris.jerdonek | link | issue15554 messages |
2012-08-04 02:39:36 | chris.jerdonek | create | |
|