On Fri, 10 Jul 2020 at 13:47, Stestagg <stestagg@gmail.com> wrote:
The intent of my statement was: The current implementation of dict does not allow any reasonable implementation of dict_keys/dict_values/dict_items with O(1) index behaviour. I.e. the performance scalability of any future changes to the dict_* types that add direct indexing is *not* likely to be adversely affected by changes to the implementation of dict(), unless somehow iteration in O(n) time becomes impossible.
So you're saying that you'd like to be able to index dict.keys()/dict.values()/dict.items(), but are fine with O(n) performance. OK, list(d.items())[n] does *precisely* what you are asking for. So you're asking for a less verbose spelling of that. That would be something we could discuss, except for the fact that the_items = list(d.items()) the_items[n] has *better* amortised performance than that, if I can index multiple times using the same snapshot of the list. It's pretty much certain that you're not going to succeed if you are requesting a new dictionary feature that's guaranteed to have worse performance than the current idiomatic Python way of achieving the same result... So either you are failing very badly at explaining what you want and why it's useful, or you should probably give up. Paul