Actually, after studying this a bit more: http://docs.python.org/ref/assignment.html
I guess that makes sense. Sorry if I muddied the water for anyone else in my boat: n1 = n1.next = n2 The first thing that happens is the expression list is evaluated which is the thing on the far right, n2. That is a simple object reference which is then assigned to each of the target lists, left to right, of which there are two: n1 and n1.next. So, first, n1 is assigned the same value n2 has. Next, n1.next is assigned n2 (The object n1 refers to, which is also now n2, is assigned a new attribute, that value of which is n2). So, yeah... as Terry Reedy said: better to be explicit about what you want to happen first and not mash them together into one line. That would be... how do you say... "Pythonic"? (God, I feel so much better now. LOL) -- http://mail.python.org/mailman/listinfo/python-list