- dict.first_key = lambda self: next(iter(self))
- dict.first_val = lambda self: next(iter(self.values()))
- dict.first_item = lambda self: next(iter(self.items()))
- dict.last_key = lambda self: next(reversed(self))
- dict.last_val = lambda self: next(reversed(self.values()))
- dict.last_item = lambda self: next(reversed(self.items()))
But I think I like a lot more the idea of adding general ways of doing these things to itertools.
Except many iterables don’t have a last item. And many more can’t give you the last item efficiently.
-CHB
On 5 Oct 2021, at 05:30, Christopher Barker pythonchb@gmail.com wrote:
On Mon, Oct 4, 2021 at 5:46 PM Erik Demaine edemaine@mit.edu wrote:
Have folks thought about allowing indexing dictionary views as in the following code, where d is a dict object?
d.keys()[0] d.keys()[-1] d.values()[0] d.values()[-1] d.items()[0] d.items()[-1] # item that would be returned by d.popitem()
since dicts were made order-preserving, indexing the keys, items, etc does make some sense.
I've also often wanted to get an arbitrary item/key from a dictionary,
and
This is indeed one of the use cases identified.
I found some related discussion in
https://mail.python.org/archives/list/python-ideas@python.org/thread/QVTGZD6... but not this exact idea.
That's a pretty different idea but this exact idea has been discussed on this list relatively recently. I still like it, but there wan't much general support.
I'll leave it exercise for the read to find that thead, but it is there, and I suggest you look for it if you want to further pursue this idea.
-CHB
-- Christopher Barker, PhD (Chris)
Python Language Consulting
- Teaching
- Scientific Software Development
- Desktop GUI and Web Development
- wxPython, numpy, scipy, Cython
Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-leave@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/RAEDZP...
Code of Conduct: http://python.org/psf/codeofconduct/
--
Christopher Barker, PhD (Chris)
Python Language Consulting - Teaching - Scientific Software Development - Desktop GUI and Web Development - wxPython, numpy, scipy, Cython