the append method has side effect rather than create new listit mutates the existing list techs by adding new elementthe string 'rpi'to the end of it after append is executedthe state of the computation looks like figure demonstration of mutability univs still contains the same two listsbut the contents of one of those lists has been changed consequentlythe print statements print 'univs ='univs print 'univs ='univs now produce the output univs [['mit''caltech''rpi']['harvard''yale''brown']univs [['mit''caltech']['harvard''yale''brown']what we have here is something called aliasing there are two distinct paths to the same list object one path is through the variable techs and the other through the first element of the list object to which univs is bound one can mutate the object via either pathand the effect of the mutation will be visible through both paths this can be convenientbut it can also be treacherous unintentional aliasing leads to programming errors that are often enormously hard to track down as with tuplesa for statement can be used to iterate over the elements of list for examplefor in univsprint 'univs contains' print which containsfor in eprint '