In Python, list slicing is a common practice and it is the most used technique for programmers to solve efficient problems. Consider a python list, In-order to access a range of elements in a list, you need to slice a list. One way to do this is to use the simple slicing operator i.e. colon(:)
With this operator, one can specify where to start the slicing, where to end, and specify the step. List slicing returns a new list from the existing list.
Syntax:
Lst[ Initial : End : IndexJump ]
If Lst is a list, then the above expression returns the portion of the list from index Initial to index End, at a step size IndexJump.
Indexing
1. Positive Indexes
Below is a simple program, to display a whole list using slicing.
# Initialize list
Lst = [50, 70, 30, 20, 90, 10, 50]
# Display list
print(Lst[::])
Output:
[50, 70, 30, 20, 90, 10, 50]
The above diagram illustrates a list Lst with its index values and elements.
2. Negative Indexes
Now, let us look at the below diagram which illustrates a list along with its negative indexes.
Index -1 represents the last element and -n represents the first element of the list(considering n as the length of the list). Lists can also be manipulated using negative indexes also.
# Initialize list Lst
=
[
50
,
70
,
30
,
20
,
90
,
10
,
50
]
print
(Lst[
-
7
::
1])
Output:
[50, 70, 30, 20, 90, 10, 50]
The above program displays the whole list using the negative index in list slicing.
3. Slicing
As mentioned earlier list slicing is a common practice in Python and can be used both with positive indexes as well as negative indexes. The below diagram illustrates the technique of list slicing:
The below program transforms the above illustration into python code:
# Initialize list
Lst
=
[
50
,
70
,
30
,
20
,
90
,
10
,
50
]
print
(Lst[
1
:
5
])
Output:
[70, 30, 20, 90]
Below are some examples which depict the use of list slicing in Python:
Example 1:
List
=
[
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
]
print
(
"\nOriginal List:\n"
,
List
)
print
(
"\nSliced Lists: "
)
print
(
List
[
3
:
9
:
2
])
print
(
List
[::
2
])
print
(
List
[::])
Output:
Original List:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Sliced Lists:
[4, 6, 8]
[1, 3, 5, 7, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Leaving any argument like Initial, End or IndexJump blank will lead to the use of default values i.e 0 as Initial, length of list as End and 1 as IndexJump.
Example 2:
List
=
[
'Geeks'
,
4
,
'geeks !'
]
print
(
"\nOriginal List:\n"
,
List
)
print
(
"\nSliced Lists: "
)
print
(
List
[::
-
1
])
print
(
List
[::
-
3
])
print
(
List
[:
1
:
-
2
])
OuA reversed list can be generated by using a negative integer as the IndexJump argument. Leaving the Initial and End as blank. We need to choose the Initial and End value according to a reversed list if the IndexJump value is negative.
Example 3:tput:
Original List:
['Geeks', 4, 'geeks !']
Sliced Lists:
['geeks !', 4, 'Geeks']
['geeks !']
['geeks !']
List
=
[
-
999
,
'G4G'
,
1706256
,
'^_^'
,
3.1496
]
print
(
"\nOriginal List:\n"
,
List
)
print
(
"\nSliced Lists: "
)
print
(
List
[
10
::
2
])
print
(
List
[
1
:
1
:
1
])
print
(
List
[
-
1
:
-
1
:
-
1
])
print
(
List
[:
0
:])
Output:
Original List:
[-999, 'G4G', 1706256, '^_^', 3.1496]
Sliced Lists:
[]
[]
[]
[]
If some slicing expressions are made that do not make sense or are incomputable then empty lists are generated.
Example 4:
List = [ - 999 , 'G4G' , 1706256 , 3.1496 , '^_^' ]
print ( "\nOriginal List:\n" , List )
print ( "\nSliced Lists: " )
List [ 2 : 4 ] = [ 'Geeks' , 'for' , 'Geeks' , '!' ]
print ( List )
List [: 6 ] = []
print ( List )
|
Output:
Original List:
[-999, 'G4G', 1706256, 3.1496, '^_^']
Sliced Lists:
[-999, 'G4G', 'Geeks', 'for', 'Geeks', '!', '^_^']
['^_^']
1 Comments
👍👍👍👍
ReplyDelete