You bring up a good point.  the "for x in d:" notation is a relativly
new construction, "for x in d.keys()" is much older.  Some of the value
of d.keys() goes away because we have this new construction, but
there's some reasons to keep it around:
1. Consitency.  You can get the values, you can get the (key, value)
pairs.  it'd be odd not to be able to get the keys
2. Choices.  if d.keys() is a FAST operation, then you can then use
that to create any structure you want.  For example, if you want a set,
  set(d.keys()) only requires you to create a set.  If d.keys() created
an independant list, python would first need to create a list, then
create a set.
Paul Rubin wrote:
> "Delaney, Timothy (Tim)" <[EMAIL PROTECTED]> writes:
> > If you want an independent data set, you have to take a snapshot. For
> > the above, that's doing:
> >
> >     k0 = list(d.keys())
>
> I don't understand.  Why have .keys() at all, if it doesn't get you
> an independent data set?  If all you want is to iterate through the
> dict, you can already do that:
> 
>   for k in d: ....

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to