Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #51129

Re: Python 3: dict & dict.keys()

From Peter Otten <__peter__@web.de>
Subject Re: Python 3: dict & dict.keys()
Date 2013-07-24 15:25 +0200
Organization None
References <51EF2AD8.3080105@stoneleaf.us> <ksnrr9$k4t$1@ger.gmane.org> <CAHVvXxQGCFJe7ud+mwh4zhnq5F7xvHJX1pCtGCjMaFtjBwY=iQ@mail.gmail.com>
Newsgroups comp.lang.python
Message-ID <mailman.5034.1374672304.3114.python-list@python.org> (permalink)

Show all headers | View raw


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.

Do you have 2.x code lying around where you get a significant advantage by 
picking some_dict.viewkeys() over some_dict.iterkeys()? 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'])

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()).

Back to comp.lang.python | Previous | Next | Find similar | Unroll thread


Thread

Re: Python 3: dict & dict.keys() Peter Otten <__peter__@web.de> - 2013-07-24 15:25 +0200

csiph-web