cheese the cheese variable refers to the same list [ 'hello!' this might look odd to you the code touched only the cheese listbut it seems that both the cheese and spam lists have changed when you create the list you assign reference to it in the spam variable but the next line copies only the list reference in spam to cheesenot the list value itself this means the values stored in spam and cheese now both refer to the same list there is only one underlying list because the list itself was never actually copied so when you modify the first element of cheese you are modifying the same list that spam refers to remember that variables are like boxes that contain values the previous figures in this show that lists in boxes aren' exactly accuratebecause list variables don' actually contain lists--they contain references to lists (these references will have id numbers that python uses internallybut you can ignore them using boxes as metaphor for variablesfigure - shows what happens when list is assigned to the spam variable figure - spam [ stores reference to listnot the actual list thenin figure - the reference in spam is copied to cheese only new reference was created and stored in cheesenot new list note how both references refer to the same list figure - spam cheese copies the referencenot the list