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

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

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

>>> testn[:-1]
test

Since this works even on empty strings, its 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.

It means all elements of the sequence but the last. In the context of f.readline()[:-1] it means Im pretty sure that line ends with a newline and I want to strip it.

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

It selects all but the last element of a sequence.

Example below using a list:

In [15]: a=range(10)

In [16]: a
Out[16]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

In [17]: a[:-1]
Out[17]: [0, 1, 2, 3, 4, 5, 6, 7, 8]

Leave a Reply

Your email address will not be published. Required fields are marked *