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