Canonical conversion of dict of dicts to list of dicts

Stestagg stestagg at gmail.com
Tue Mar 30 08:11:02 EDT 2021


For completeness, from 3.5 onwards, you can also do the following:

[{'name': n, **d} for n, d in dod.items()]

On Tue, Mar 30, 2021 at 1:06 PM Chris Angelico <rosuav at gmail.com> wrote:

> On Tue, Mar 30, 2021 at 11:01 PM Jon Ribbens via Python-list
> <python-list at python.org> wrote:
> >
> > On 2021-03-30, Chris Angelico <rosuav at gmail.com> wrote:
> > > I dunno about "canonical", but here's how I'd do it:
> > >
> > > lod = [info | {"name": name} for name, info in dod.items()]
> > >
> > > You could use {"name":name}|info instead if you prefer to have the
> > > name show up first in the dictionary.
> >
> > It's probably worth noting this method requires Python 3.9.
>
> True, and if you need 3.8 support, then the dict constructor with one
> kwarg is the way to do it. But this way has the flexibility that you
> can choose which way to resolve conflicts (if there's a name inside
> the info dict, should it override the key, or not?).
>
> ChrisA
> --
> https://mail.python.org/mailman/listinfo/python-list
>


More information about the Python-list mailing list