[' '[ ]' 'changes too this effect usually becomes important only in larger programsand shared references are often exactly what you want if objects change out from under you in unwanted waysyou can avoid sharing objects by copying them explicitly for listsyou can always make top-level copy by using an empty-limits sliceamong other techniques described earlierl [ [' ' [:]' ' [ [ [' '[ ]' 'embed copy of (or list( )or copy()changes only lnot rememberslice limits default to and the length of the sequence being slicedif both are omittedthe slice extracts every item in the sequence and so makes top-level copy ( newunshared objectrepetition adds one level deep repeating sequence is like adding it to itself number of times howeverwhen mutable sequences are nestedthe effect might not always be what you expect for instancein the following example is assigned to repeated four timeswhereas is assigned to list containing repeated four timesl [ [ like [ [ [ [ [llx [ [[ ][ ][ ][ ]because was nested in the second repetitiony winds up embedding references back to the original list assigned to land so is open to the same sorts of side effects noted in the preceding sectionl[ impacts but not [ [[ ][ ][ ][ ]this may seem artificial and academic--until it happens unexpectedly in your codethe same solutions to this problem apply here as in the previous sectionas this is really just another way to create the shared mutable object reference case--make copies when you don' want shared referencesbuilt-in type gotchas