Open In App

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 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 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)


Article Tags :