Saturday 30 January 2016

What does [:-1] mean/do in python?




Working on a python assignment and was curious as to what [:-1] means in the context of the following code: instructions = f.readline()[:-1]



Have searched on here on S.O. and on Google but to no avail. Would love an explanation!


Answer



It slices the string to omit the last character, in this case a newline character:



>>> 'test\n'[:-1]
'test'



Since this works even on empty strings, it's a pretty safe way of removing that last character, if present:



>>> ''[:-1]
''


This works on any sequence, not just strings.



For lines in a text file, I’d actually use line.rstrip('\n') to only remove a newline; sometimes the last line in the file doesn’t end in a newline character and using slicing then removes whatever other character is last on that line.



No comments:

Post a Comment

c++ - Does curly brackets matter for empty constructor?

Those brackets declare an empty, inline constructor. In that case, with them, the constructor does exist, it merely does nothing more than t...