To access a range of characters in a string, you need to slice a string. One way to do this is to use the simple slicing operator
With this operator you can specify where to start the slicing, where to end and specify the step.
Slicing a String
If S is a string, the expression S [ start : stop : step ] returns the portion of the string from index start to index stop, at a step size step.
Here is a basic example of string slicing.
S = 'ABCDEFGHI' print(S[2:7]) # CDEFG
Note that the item at index 7
'H' is not included.
Slice with Negative Indices
You can also specify negative indices while slicing a string.
S = 'ABCDEFGHI' print(S[-7:-2]) # CDEFG
Slice with Positive & Negative Indices
You can specify both positive and negative indices at the same time.
S = 'ABCDEFGHI' print(S[2:-5]) # CD
Specify Step of the Slicing
You can specify the step of the slicing using step parameter. The step parameter is optional and by default 1.
# Return every 2nd item between position 2 to 7 S = 'ABCDEFGHI' print(S[2:7:2]) # CEG
Negative Step Size
You can even specify a negative step size.
# Returns every 2nd item between position 6 to 1 in reverse order S = 'ABCDEFGHI' print(S[6:1:-2]) # GEC
Slice at Beginning & End
Omitting the start index starts the slice from the index 0. Meaning,
S[:stop] is equivalent to
# Slice first three characters from the string S = 'ABCDEFGHI' print(S[:3]) # ABC
Whereas, omitting the stop index extends the slice to the end of the string. Meaning,
S[start:] is equivalent to
# Slice last three characters from the string S = 'ABCDEFGHI' print(S[6:]) # GHI
Reverse a String
You can reverse a string by omitting both start and stop indices and specifying a step as -1.
S = 'ABCDEFGHI' print(S[::-1]) # IHGFEDCBA