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