> > - 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 <python...@gmail.com> wrote: > > > > On Mon, Oct 4, 2021 at 5:46 PM Erik Demaine <edema...@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/QVTGZD6USSC34D4IJG76UPKZRXBBB4MM/ >> 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-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/RAEDZPUTNABJLX3ESU32PZQBJ25DDOPK/ > > > 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
_______________________________________________ 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/THRXG26D74UFRXJOLZKL2CZUZDNJ6PIH/ Code of Conduct: http://python.org/psf/codeofconduct/