Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #51149
| Date | 2013-07-24 17:32 +0100 |
|---|---|
| Subject | Re: Python 3: dict & dict.keys() |
| From | Oscar Benjamin <oscar.j.benjamin@gmail.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.5051.1374683530.3114.python-list@python.org> (permalink) |
[Multipart message — attachments visible in raw view] - view raw
On Jul 24, 2013 2:27 PM, "Peter Otten" <__peter__@web.de> wrote: > > Oscar Benjamin wrote: > > > On Jul 24, 2013 7:25 AM, "Peter Otten" <__peter__@web.de> wrote: > >> > >> Ethan Furman wrote: > >> > >> > So, my question boils down to: in Python 3 how is dict.keys() > >> > different > >> > from dict? What are the use cases? > >> > >> I just grepped through /usr/lib/python3, and could not identify a single > >> line where some_object.keys() wasn't either wrapped in a list (or set, > >> sorted, max) call, or iterated over. > >> > >> To me it looks like views are a solution waiting for a problem. > > > > What do you mean? Why would you want to create a temporary list just to > > iterate over it explicitly or implicitly (set, sorted, max,...)? > > I mean I don't understand the necessity of views when all actual usecases > need iterators. The 2.x iterkeys()/iteritems()/itervalues() methods didn't > create lists either. Oh, okay. I see what you mean. > > Do you have 2.x code lying around where you get a significant advantage by > picking some_dict.viewkeys() over some_dict.iterkeys()? No. I don't think I've ever used viewkeys. I noticed it once, didn't see an immediate use and forgot about it but... > I could construct > one > > >>> d = dict(a=1, b=2, c=3) > >>> e = dict(b=4, c=5, d=6) > >>> d.viewkeys() & e.viewkeys() > set(['c', 'b']) that might be useful. > > but have not seen it in the wild. > My guess is that most non-hardcore users don't even know about viewkeys(). > By the way, my favourite idiom to iterate over the keys in both Python 2 and > 3 is -- for example -- max(some_dict) rather than > max(some_dict.whateverkeys()). Agreed. Earlier I saw that I had list(some_dict) in some code. Not sure why but maybe because it's the same in Python 2 and 3. Oscar
Back to comp.lang.python | Previous | Next | Find similar | Unroll thread
Re: Python 3: dict & dict.keys() Oscar Benjamin <oscar.j.benjamin@gmail.com> - 2013-07-24 17:32 +0100
csiph-web