Reputation: 1281
With string indices, is there a way to slice to end of string without using len()
?
Negative indices start from the end, but [-1]
omits the final character.
word = "Help"
word[1:-1] # But I want to grab up to end of string!
word[1:len(word)] # Works but is there anything better?
Upvotes: 36
Views: 118015
Reputation: 720
Sometimes it is useful to save the index, for example to use it on other variables or to pass it to functions. Here, slice
objects come in useful.
>>> word = "Help"
>>> index = slice(1,None) # equivalent to [1:] indexing
>>> word[index]
'elp'
>>> sentence = "Help with Python indexing."
>>> sentence[index]
'elp with Python indexing.'
Upvotes: 1
Reputation: 43
You could always just do it like this if you want to only omit the first character of your string:
word[1:]
Here you are specifying that you want the characters from index 1, which is the second character of your string, till the last index at the end. This means you only slice the character at the first index of the string, in this case 'H'. Printing this would result in: 'elp'
Not sure if that's what you were after though.
Upvotes: 2
Reputation: 3751
I found myself needing to specify the end index as an input variable in a function. In that case, you can make end=None
. For example:
def slice(val,start=1,stop=None)
return val[start:stop]
word = "Help"
slice(word) # output: 'elp'
Upvotes: 15