On Sat, 30 Nov 2019 at 22:24, Steven D'Aprano <steve@pearwood.info> wrote:
On Sat, Nov 30, 2019 at 06:16:49PM -0300, Soni L. wrote:
It'd be quite nice if dict.items() returned a namedtuple so all these x[0], x[1], el[0], el[1], etc would instead be x.key, x.value, el.key, el.value, etc. It would be more readable and more maintainable.
If you are doing
for item in somedict.items(): process(item[0]) process(item[1])
you could do this instead:
for key, value in somedict.items(): process(key) process(value)
You can also make your own function to get the items as namedtuples. That can work now with any class that defines items the current way. from collections import namedtuple Item = namedtuple('Item', ['key', 'value']) def nameditems(d): return (Item(*t) for t in d.items()) d = {'a': 1, 'b': 2} for item in nameditems(d): print(item.key, item.value) Comparing that with Steve's example above though I don't see the advantage of namedtuples here. -- Oscar