Semantics of ==

Axel Boldt axelboldt at
Fri Mar 26 14:45:53 CET 2004

Erik Max Francis <max at> wrote

> What part of the semantics are you unclear about?  Two sequences are
> equal if they are element-wise equal.

That definition is circular.

> That is the definition that people rely on, 


> that's the definition that the interpreter uses,


> and that definition is even consistent with the behavior you saw with the
> self-referencing lists which for some reason surprised you.

Yes, s==w is consistent with the definition, but s!=w would also have
been consistent with it.

Consider for instance the following definition: 
* all strings and numbers are called "well-founded"
* a list is called well-founded if and only if all its elements are

Is l well-founded? Both answers "yes" and "no" are consistent with the
above definition. If you write a program to determine whether a given
list is well-founded, it will run into an infinite loop. Similarly, if
you try to write a program implementing the above simple-minded
definition of list-equality, it'll run into an infinite loop. Since
Python does not run into an infinite loop, it must use a different


More information about the Python-list mailing list