Is there a reason that assigning a list to another list and changing an item in one reflects the change in both, but changing the entire list of one does not reflect the change in both?
a=5
b=a
a=3
print b #this prints 5
spy = [0,0,7]
agent = spy
spy[2]=8
print agent #this prints [0,0,8]
spy = [0,0,7]
agent = spy
spy = "hello"
print agent #this prints [0,0,7]