Sequence data operations: Slicing
• The slice() constructor creates a slice object representing the set of indices specified by
range(start, stop, step)
• Syntax: slice(stop), slice(start, stop, step)
• If a single parameter is passed, start and step are set to None
So, let us get started with slicing. So, the slice object is used to slice a given sequence and the
sequence can be string the sequence can be strings tuples, bytes, list or range or any object which
supports sequence protocol. And the slice object represents the indices specified by the range
function given the start stop and the step value. And the syntax of the slice operation the syntax
for the slice object is given here and the syntax for the slice function is given here.
So, you can either use slice of stop or you can use slice of start stop and step. So, basically the
slice function takes in three arguments which have the same meaning in both the constructs. So,
the first one is start which is a starting integer value where the string which is an integer value
which is an integer value which represents the starting from where the slicing of the objects.
So, the first argument is start. So, that is the starting integer where the slicing of the object starts
the next one is top that is an integer until which the slicing takes place. So the slicing stops at the
index n minus 1 or the minus 1.. So, for example I have given the second argument as 4 it means
that is the stop value. So, it is going to give me the sequence of values still 3. So, next one is step
an integer value which determines the increment between each index for slicing.
So, for example if you are giving 2, so, you will fetch the, so, you will be getting the values in
the step size 2. So, by default if you do not give anything it is going to take it as 1 as the
increment value but if you are providing any value then it is going to consider that as the
increment value.
String Slicing
So, let us just get started with the example on string. So, we have already
created the string called strsample which has a string called learning. So, now my objective is to
get the substring from a given string strsample from the given string learn from the given string
learning.
So, we can use the slice object to do that. So, on strsample I am using the slice of I am using the
slice function inside the square brackets then inside the slice function I am just giving three
values one for start stop and the step value. So, here the output I have already printed that is er
which is e and r from learning. So, basically we have got that by specifying the starting index as
one. So, actually the slicing started from e and it will actually end at the index 4 then it is 2 3 and
4.
So, n will have the index 4 but actually it is going to give you till n minus 1 right. So, it will stop
at r and since I have given the increment value as 2 it is not going to give you all the sequence of
sequence of strings from e as it is not going to give you the sequence of strings as e a r rather it is
going to give you the sequence in terms of incrementing the strings by two. So, it is just going to
give you as a r alone.
So, it is just going to give you the output as e r alone. So, this is how the slicing operator. So, this
is how we use the slice function in order to slice the given sequence of elements or given
sequence of substrings from the given string or the any sequence object. And the other method is
the other method for slicing the elements or the substrings from a given object is using the square
bracket. You do not have to use the slice function inside it you can either use the slice function or
the colon operator.
Here I am using just a colon inside the square bracket. So, that it gives me all the substrings from
a string learning that is learning. So, just by giving just by just placing colon inside the square
brackets fetches me the learning that is the complete set of strings from the main string that is
strsample. So, this is how we perform the slicing on the string sequence data. So, basically we
use slicing whenever we want to perform any operations on a particular set of elements on your
string or on your any or it can be applied on any sequence data.
So, all the values from a list will not get modified based on your calculation or based on your
operation only the particular set of elements or substrings will be modified based on the
operations that you are performing on it.
List Slicing
it. Similarly we can perform the slicing operations in other
in any other sequence data for example the next example to illustrate you is on list. So, lists
basically have a default bit of functionality when slicing.
So, here let us just print what is there under the list sample so these are the values these are the
elements that is there under the lstsample 1 2 a sam and 2. So, now I am going to perform slicing
on the list sample. So, basically if there is no volume before the first colon for example like this I
have not given any value before the first colon and I have given value after the colon in that case
it needs to start at the beginning index of the list.
It means to start the slicing at the beginning index of the list. So, let us just see what happens
when we use colon 3. So, the output is given here. So, this the slicing started from the index 1.
So, the slicing started from the beginning of the list that is from 1 itself and the next value is the
stop value. So, 0 1 2 3 it is going to give you the sub elements from the list till or before sam. So,
we have got the output as 1 2 and a.
Since the index the since the stop index is at 3 it is just going to give you a value it is just going
to give you a sequence of elements or sequence of sub elements from your main list which is just
before the third index that is 1 2 and a. The other thing to note here if you have not provided a
value after the first colon like this then it means to go all the way to the end of the list starting
from the index 2. So, I am just saying to slice starting from the index 2 and to go all the way to
the end of a list and this basically saves this time.
So, that we do not have to manually specify length of a which basically. So, this saves us time.
So, that we do not have to manually specify length of len of lstsample in order to specify that is
the end of a list or that is to specify the that is to specify or to check how many elements are
there in a list. So, in order to get rid of that you can just use a colon after the you can you do not
have to specify anything after the first column. So, that it automatically takes all the sub elements
till the end of your list. So, this is how we perform the slicing operation on a list.
So, here if you have noted down I have not used the slice function rather I have just used the
colon operator to slice the sub elements from the list by just separating by just giving the start
stop and the step value in terms of using colon operator. And if you can recall here whatever
order that you are giving here inside the slice option inside the slice function the same applies
here but instead of using slice function I have just used the square bracket.
And if I give 2 colon 3 colon 1 then it means that starting while the starting index is 2 and the
ending index is 3 and the increment value is 1 but you can as well specify without even giving
any value just to denote that I need all the values from 2 and I need all the values till 3.
(Refer Slide Time: 09:54)
For example this is the start value and the stop value let us check what is the output? So, the
slicing operation is being done from the index 2 of the list that is 0 1 2 from a until 4 3 and 4 and
it is not going to consider the 4 as the index but it just considered till n minus 1. So, that will be
3. So, it is going to give you a and sam as the output. So, I hope this is clear. So, let us move on
to performing the slicing on the other sequential data.
Dictionary Slicing
So, we have also created a dictionary sample right so let us just perform slicing on it but it gives
you an error saying type error and hashable type that is slice. So, if you can recall the python
dictionary object provides a key value indexing facility and the values in the dictionary are
indexed by keys and they are not held in any order in that case we will not be able to perform
slicing because it requires the index to slice the given sequence of values or given sequence of
elements.
To slice the sequence of values or sequence of keys from your dictionary, so, slice. So, we
cannot perform slicing on a dictionary because it is a non it is a container for non it is a container
for holding non sequential data.
Set Slicing
So, in that case we will not be able to apply that onto a set as well. So, let us just see what happens when we apply that onto a set. So, it also throws an error
saying set object is not subscriptable.
As we know that set is also a container to hold non-sequential data. So, all the elements inside
the set are not indexed or not indexed by any indices rather they are not they are not held in any
order. So, we cannot perform the slicing operation on a set also because even set is also a
container for holding the non-sequential data in that case all the elements inside the set will not
have any index for index corresponding to each element. So, we can perform the slicing in index
as well.
0 Comments:
Post a Comment