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

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.

Leave a Comment