What's the difference ?
Marc 'BlackJack' Rintsch
bj_666 at gmx.net
Wed Aug 29 10:08:04 EDT 2007
On Wed, 29 Aug 2007 13:39:27 +0000, Alex wrote:
> Hye,
>
> I was just wondering what is the difference between
>
>>> if my_key in mydict:
>>> ...
>
> and
>
>>> if mydict.has_keys(my_key):
>>> ...
>
> I've search a bit in the python documentation, and the only things I
> found was that they are "equivalent".
>
> But in this (quiet old) sample ( "http://aspn.activestate.com/ASPN/
> Cookbook/Python/Recipe/59875" ), there is difference between the two
> notation.
The comments in this recipes source code are misleading. Difference is
not the ``in`` but that it is used on ``another_dict.keys()`` in the "bad"
example. That is a linear search on a list with all keys instead asking
the dictionary directly like you did above.
The difference in your code above is that ``in`` works on other types too
that implement `__contains__()`, like lists or sets for example, and that
it is a bit faster as the second example has to look up the `has_key()`
method on the object first.
Ciao,
Marc 'BlackJack' Rintsch
More information about the Python-list
mailing list