"a in b" calls a.__cmp__, why?
Terry Reedy
tjreedy at udel.edu
Sat Jun 21 16:44:53 EDT 2003
"Gerrit Holl" <gerrit at nl.linux.org> wrote in message
news:mailman.1056224677.5103.python-list at python.org...
> Why does a container-sequence's __contains__ call obj.__cmp__?
Because 'in' is defined by equality, as determined by comparison
returning 0 or not , and not by identity.
If you want identity in-ness, either program the search yourself or
use a list (or dict/set) of ids and search for id(item) in idlist.
If your list is long (enough) and repeatedly searched, sorting and
using binsearch or making a set or dict for hash access will be
faster.
Terry J. Reedy
More information about the Python-list
mailing list