In article <[EMAIL PROTECTED]>, bruno at modulix <[EMAIL PROTECTED]> wrote: > [EMAIL PROTECTED] wrote: ... > >>And I don't understand it. I thought, that b will be a reference to a, > >>so changing b should change a as well. > > > > > > No, you've set the name b to reference a slice of a. Slicing a list > > always returns a new list. > > Please verify before asserting: > > >>> a = [[1, 2], [3, 4]] > >>> b = a[1] > >>> b is a[1] > True > >>> id(b) > 46912496915448 > >>> id(a[1]) > 46912496915448 > >>>
You're right - he actually didn't set the name b to reference a slice of a. But if he had - slicing a list does return a new list. Indexing, as in the example, returns the item object. Or, binds a reference to the left hand side identifier, whatever, but there is no way to bind anything to the list location. Donn Cave, [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list