spam spam cheese these results make sense from what you know so far you assign to the spam variableand then assign the value in spam and to the variable cheese when you later overwrite spam to this doesn' affect the value in cheese this is because spam and cheese are different variables that store different values but lists don' work this way when you assign list to variable with the signyou are actually assigning list reference to the variable reference is value that points to some bit of data here is some code that will make this easier to understand type this into the interactive shellspam [ cheese spam cheese[ 'hello!spam [ 'hello!' cheese [ 'hello!' this looks odd the code only changed the cheese listbut it seems that both the cheese and spam lists have changed this is because the spam variable does not contain the list value itselfbut rather spam contains reference to the list as shown in figure - the actual list itself is not contained in any variablebut rather exists outside of them figure - variables don' store listsbut rather references to lists