This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author remi.lapeyre
Recipients methane, remi.lapeyre, rhettinger, selik, serhiy.storchaka
Date 2018-05-24.10:54:16
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1527159256.66.0.682650639539.issue33462@psf.upfronthosting.co.za>
In-reply-to
Content
>> 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.
History
Date User Action Args
2018-05-24 10:54:16remi.lapeyresetrecipients: + remi.lapeyre, rhettinger, methane, serhiy.storchaka, selik
2018-05-24 10:54:16remi.lapeyresetmessageid: <1527159256.66.0.682650639539.issue33462@psf.upfronthosting.co.za>
2018-05-24 10:54:16remi.lapeyrelinkissue33462 messages
2018-05-24 10:54:16remi.lapeyrecreate