how to remove duplicates dict from the list of dictionary based on one of the elements is duplicate in list of dict
Cameron Simpson
cs at cskk.id.au
Sun Nov 17 02:12:48 EST 2019
On 17Nov2019 12:26, Iranna Mathapati <iranna.gani28 at gmail.com> wrote:
>How to remove duplicates dict from the list of dictionary based on one
>of
>the duplicate elements in the dictionary,
>
>l = [{"component":"software", "version":"1.2" },
> {"component":"hardware", "version":"2.2",},
> {"component":"driver", "version":"3.2",},
> {"component":"firmware", "version":"4.2",},
> {"component":"software", "version":"1.9",},
> {"component":"hardware", "version":"2.7",}
> ]
>
>need to remove the dict if having same components [in the above example
>components "software" and "hardware" is duplicated twice
>
>expected output:
>
> [{"component":"software", "version":"1.2" },
> {"component":"hardware", "version":"2.2",},
> {"component":"driver", "version":"3.2",},
> {"component":"firmware", "version":"4.2",}
> ]
I would be inclined to keep a mapping (eg another dict) keyed on the
value of "component". When you process these lists, put the
component/version dicts into the appropriate entry in the new dict. If
an entry is already there, act appropriately (eg keep the existing
entry, keep the new entry, compare the entries in some way and keep the
"better" one, etc). Then at the end, walk the new dict and make a fresh
list.
Not providing example code because this feels a little homeworky, so we
expect you to attempt the code first.
Cheers,
Cameron Simpson <cs at cskk.id.au>
More information about the Python-list
mailing list