On Sat, Aug 1, 2020 at 6:07 AM Ricky Teachey <ri...@teachey.org> wrote:
>
> On Fri, Jul 31, 2020 at 3:52 PM Marco Sulla <marco.sulla.pyt...@gmail.com> 
> wrote:
>>
>> Is it not more simple to add some sequence methods to the dict views (if 
>> there's a real need)?
>> If you do tuple(dict.keys()), you get the sequence of keys in the same 
>> insertion order of the dict. It seems to me that the duck already exists and 
>> quacks.
>
>
> The problem with that is these view objects are in fact NOT ducks 
> (sequences). They are gooses (sets). Gooses don't quack. They honk.
>

They are guaranteed to iterate in the same order as the dict, though,
unless I'm mistaken. There's been a weaker guarantee for a long time
(that iteration order for keys/values/items is consistent and will not
change without a dict mutation), and I can't find anywhere that it's
now guaranteed to be the same as dict order, but I would be very
surprised if list(d) was different from list(d.keys()). So,
constructing a tuple or list from the keys or items WILL give you a
sequence.

Whether that's good enough is another question. For instance, it
requires taking a full copy of the dict, even if all you want is a
single element from it.

ChrisA
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/QN6BDOBM6KXB3LAVSE34WNTN4T2APBDA/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to