Python – Difference between Uni length slicing and Access Notation
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
# 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)) |
Output
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
# 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)) |
Output
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)
Please Login to comment...