Stephen Eilert wrote: > Hendrik van Rooyen escreveu: > >> <[EMAIL PROTECTED]> wrote: >> >> > Peter> Bjoern Schliessmann wrote: >> > >> Wouldn't be "if k in d.keys()" be the exact replacement? >> > >> > Peter> No, 'k in d' is equivalent to 'd.has_key(k)', only with less >> > Peter> (constant) overhead for the function call. 'k in d.keys()' on >> > the >> > Peter> other hand creates a list of keys which is then searched >> > linearly >> > Peter> -- about the worst thing you can do about both speed and memory >> > Peter> footprint. > > I've always used has_key(), thinking it was the only way to do it. > Given that Python says that "There Should Be Only One Way to Do It", I > didn't bother searching for alternatives. > > Is there a list somewhere listing those not-so-obvious-idioms? I've > seen some in this thread (like the replacement for .startswith). > > I do think that, if it is faster, Python should translate > "x.has_key(y)" to "y in x".
How and when should it do that? Georg -- http://mail.python.org/mailman/listinfo/python-list