On Sun, Dec 27, 2020 at 11:36 AM Greg Ewing <greg.ew...@canterbury.ac.nz> wrote: > > On 27/12/20 10:15 am, Christopher Barker wrote: > > It does seem like ** could be usable with any iterable that returns > > pairs of objects. However the trick is that when you iterate a dict, you > > get the keys, not the items, which makes me think that the only thing > > you should *need* is an items() method that returns an iterable (pf > > pairs of objects). > > It seems to me it would be more fundamental to use iteration to get > the keys and indexing to get the corresponding values. You're only > relying on dunder methods then. >
But that would mean that a lot of iterables would look like mappings when they're not. Consider: >>> def naive_items(x): ... return [(key, x[key]) for key in x] ... >>> naive_items(range(9, -1, -1)) [(9, 0), (8, 1), (7, 2), (6, 3), (5, 4), (4, 5), (3, 6), (2, 7), (1, 8), (0, 9)] ChrisA _______________________________________________ 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/7BO62PFYBMXYPJFB6V4YBMMK774SGBY7/ Code of Conduct: http://python.org/psf/codeofconduct/