There are various ways to extract elements, Uni length slicing and Access Notations are among them. Let’s check difference between them.
Difference #1 : Different behaviour with Different Containers
The access notation return element in both List and Strings, but return 1 length strings while slicing using uni length slice and element in case of strings.
# Python3 code to demonstrate working of # Difference between Uni length slicing and Access Notation # In different containers # initializing lists test_list = [ 5 , 7 , 2 , 6 , 8 , 1 ]
# initializing string test_str = "572681"
# printing original list print ( "The original list : " + str (test_list))
# printing string print ( "The original string : " + str (test_str))
print ( "\r" )
# access Notation results acc_list = test_list[ 3 ]
acc_str = test_str[ 3 ]
# unilength slicing results slc_list = test_list[ 3 : 4 ]
slc_str = test_str[ 3 : 4 ]
# printing results print ( "The access notation result for list : " + str (acc_list))
print ( "The access notation result for string : " + str (acc_str))
print ( "\r" )
print ( "The slicing result for list : " + str (slc_list))
print ( "The slicing result for string : " + str (slc_str))
|
The original list : [5, 7, 2, 6, 8, 1] The original string : 572681 The access notation result for list : 6 The access notation result for string : 6 The slicing result for list : [6] The slicing result for string : 6
Difference #2 : No Index out of bounds Exception in case of Slice operation
There is no out of bounds exception in case of Slice Operation, but there is, in case of access notation.
# Python3 code to demonstrate working of # Difference between Uni length slicing and Access Notation # No Index out of bounds Exception in case of Slice operation # initializing lists test_list = [ 5 , 7 , 2 , 6 , 8 , 1 ]
# printing string print ( "The original list : " + str (test_list))
# access Notation results try :
acc_list = test_list[ 17 ]
except Exception as e:
acc_list = str (e)
# unilength slicing results slc_list = test_list[ 17 : 18 ]
# printing results print ( "The access notation result for list : " + str (acc_list))
print ( "The slicing result for list : " + str (slc_list))
|
The original list : [5, 7, 2, 6, 8, 1] The access notation result for list : list index out of range The slicing result for list : []
The Time and Space Complexity for all the methods are the same:
Time Complexity: O(n)
Auxiliary Space: O(n)