cyclic data structures

Carsten Haese carsten at uniqsys.com
Mon Feb 13 16:10:46 EST 2006


On Mon, 2006-02-13 at 16:03, John Salerno wrote:
> Peter Decker wrote:
> 
> > 'L' is a pointer to a list. You are now adding that pointer to the
> > very list it points to.
> 
> I understand that, but I guess I just don't see how this creates 
> anything other than a list that refers to [1, 2], and then refers again 
> to [1, 2], to create [1, 2, [1, 2]].
> 
> L.append(L) basically creates this, I think:
> 
> [1, 2, L]
> 
> Now, assuming that's correct, and since L points to the list [1, 2], why 
> can't '[1, 2]' be substituted for the 'L' and then the list is closed?

L is [1,2] before the append. After the append, L is [1,2,L], which is
[1,2,[1,2,L]], which is [1,2,[1,2,[1,2,L]]] etc into infinity. L
literally contains itself after the append.

HTH,

Carsten.




More information about the Python-list mailing list