[Tutor] SLICING
Steven D'Aprano
steve at pearwood.info
Fri Jun 15 20:26:39 EDT 2018
On Fri, Jun 15, 2018 at 04:57:47PM +0300, kenneth yashim wrote:
> please im new to python or any other programming language. please i want to
> understand how slicing works
>
> [start,stop,step]
>
> >>> 'abc'[0:3]
> 'abc'
>
> >>>'abc'[0:-1]
> 'ab'
>
> why does 'abc'[2:1] or 'abc'[2:1] print ' ' instead of 'c'???
They don't return a space. They return an empty string, because the
starting point comes AFTER the ending point.
The slice from 2 to 1 means:
- move to the right;
- start at position number two
- stop when you get to, or pass, position number one
Since you have already passed position number one, the slice stops
collecting immediately, and you have an empty slice.
Slices cut the string at positions *between* the characters. If you have
the string s="abcdef", imagine marking the gaps between the characters
like this:
|a|b|c|d|e|f|
and numbering the gaps 0, 1, 2, 3, 4, 5, 6.
So the slice s[2:5] cuts at the gaps numbered 2 and 5:
|a|b||c|d|e||f|
giving you 'cde' as the returned slice.
If the ending position is to the left of the starting position, an
empty slice is returned.
--
Steve
More information about the Tutor
mailing list