Rémi Lapeyre <remi.lape...@henki.fr> added the comment:

>> I think it's a reasonable expectation as a python user to be able to do 
>> reversed(dict(a=1, b=20) since the order is know defined in the 
>> specifications.

> I agree about "reasonable expectation".  But I'm interested in is it really 
> useful in real world?

I do agree it's certainly used than the conservation of order but it's not 
useless either. For example, it could help to get the latest section defined in 
a YAML or INI file once parsed. 

>> It seems inconsistent to have an order on dict, views and not have reversed 
>> work on them.

> "Have an order" doesn't mean "reversible".  For example, single linked list 
> is ordered, but not reversible.

> While CPython implementation can provide efficient __reverse__, adding 
> __reverse__ means **all** Python implementation is expected to provide it.
> For example, some Python implementation may be able to implement dict with 
> hashmap + single linked list.  If __reverse__ is added, it's not possible 
> anymore.

Indeed they would have to use a double-linked-list here.

> "Preserve insertion order" is very useful for many people.  So it's 
> guaranteed.
> Then how useful "reversible" in real world, for many people?

While this is true, the same argument could be said about the dict views. Many 
many people don't know about them but they are still an interesting feature 
that has its place in the standard library.

It definitely won't be the most used feature in Python nor a killer feature but 
it seemed important enough to be included in OrderedDict 
(https://github.com/python/cpython/blob/master/Lib/collections/__init__.py#L63) 
since 3.5 and a C implementation of OrderedDict has been added in the same 
release so it seems to have mattered at the time.

Having this feature in the built-in dicts could actually help to simplify the 
implementation of the collections module in this case.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue33462>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to