the prototype pattern does the result you see surprise you[ [ [ [ [ [ [ [ the slice operator works perfectly when dealing with shallow list ( list containing only actual valuesnot references to other complex objects like lists or dictionariesdealing with nested structures look at the code that follows what do you think the result will belst [' '' '['ab''ba']lst lst [:lst [ 'cprint("[lst {}format(lst )print("[lst {}format(lst )hereyou see an example of deep list take look at the results--do they match what you predicted[lst [' '' '['ab''ba'][lst [' '' '['ab''ba']as you might have expected from the shallow copy examplealtering the first element of lst does not alter the first element of lst but what happens when we alter one of the elements in the list within the listlst [' '' '['ab''ba']lst lst [:lst [ ][ 'dprint("[lst {}format(lst )print("[lst {}format(lst )can you explain the results we get this time[lst [' '' '['ab'' '][lst [' '' '['ab'' ']