ID : 261
viewed : 83
Tags : PythonPython List
90
Slicing is an operation in programming languages that we can perform over sequences of objects or arrays of objects or strings. In slicing, we slice a data structure using functions and simpler notations to get a substring or a subsequence, or a subarray of the original data structure.
Python is a programming language which means that it also supports slicing. In Python, there are primarily two ways in which we can perform slicing. The first uses the slice()
function, and the second uses the indexing syntax.
slice()
ConstructorThe slice constructor accepts three arguments: start
, stop
, and step
. This constructor creates a slicing object to split a string or any sequence of objects.
start
: This is the starting index from where the slicing should begin. Its default value is 0
.stop
: This is the ending index where the slicing should end. It is a compulsory argument.step
: This is the amount of increments that should be taken while iterating over the sequence for the process of slicing. Its default value is 1
.To understand this utility a little better, let’s look at some examples. Note that in Python, -1
represents the last index. And, while indexing or iterating, the stop
index is not considered in the final result. Operations are performed over everything before it.
s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] slices = [ slice(5), slice(0, -1), slice(1, -1, 2), slice(1, 4, 1), slice(5, -1), slice(3, -1, 3), slice(0, 0), slice(-1, 0, -1), slice(-5, 5, -3), ] for i in range(len(slices)): print(s[slices[i]]) for i in range(len(slices)): print(a[slices[i]])
Output:
ABCDE ABCDEFGHIJKLMNOPQRSTUVWXY BDFHJLNPRTVX BCD FGHIJKLMNOPQRSTUVWXY DGJMPSVY ZYXWVUTSRQPONMLKJIHGFEDCB VSPMJG [1, 2, 3, 4, 5] [1, 2, 3, 4, 5, 6, 7, 8, 9] [2, 4, 6, 8] [2, 3, 4] [6, 7, 8, 9] [4, 7] [] [10, 9, 8, 7, 6, 5, 4, 3, 2] []
Note that when a single value is passed to the slice()
constructor, the value is assigned to the stop
index. That is why for slice(5)
, we got the output as ABCDE
.
In Python, instead of using the slice()
constructor to create slicing objects, we can use the following syntax to perform slicing.
sequence[start : stop : step]
The accepted arguments are the same as that of the former method; what really changes is the way of writing them. The default values for start
, stop
, and step
is 0
, -1
, and 1
, respectively. Note that we can skip the argument to use the default value, but it is necessary to write the colons
. Let us look at some examples of indexing syntax to understand it a little better.
s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(s[5]) print(s[: -1]) print(s[0 : -1]) print(s[1 : -1 : 2]) print(s[1 : 4 : 1]) print(s[5 : -1]) print(s[3 : -1 : 3]) print(s[: 0]) print(s[-1 : 0 : -1]) print(s[-5 : 5 : -3]) print(a[5]) print(a[: -1]) print(a[0 : -1]) print(a[1 : -1 : 2]) print(a[1 : 4 : 1]) print(a[5 : -1]) print(a[3 : -1 : 3]) print(a[: 0]) print(a[-1 : 0 : -1]) print(a[-5 : 5 : -3])
Output:
F ABCDEFGHIJKLMNOPQRSTUVWXY ABCDEFGHIJKLMNOPQRSTUVWXY BDFHJLNPRTVX BCD FGHIJKLMNOPQRSTUVWXY DGJMPSVY ZYXWVUTSRQPONMLKJIHGFEDCB VSPMJG 6 [1, 2, 3, 4, 5, 6, 7, 8, 9] [1, 2, 3, 4, 5, 6, 7, 8, 9] [2, 4, 6, 8] [2, 3, 4] [6, 7, 8, 9] [4, 7] [] [10, 9, 8, 7, 6, 5, 4, 3, 2] []
[ : -1]
in PythonAs we can see, this syntax belongs to the indexing syntax. [ : -1]
will print all the sequence elements except the last one. Let look at some examples to understand this concept.
s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(s[ : -1]) print(a[ : -1])
Output:
ABCDEFGHIJKLMNOPQRSTUVWXY [1, 2, 3, 4, 5, 6, 7, 8, 9]