Python Forum
remove duplicates from dicts with list values
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
remove duplicates from dicts with list values
#8
I think the problem is, you are modifying dict1, but still want to use it to modify dict2 afterwards.

Make new dictionaries, dict3 and dict4 and leave dict1 and dict2 untouched.

I assume you only want to exclude duplicate values, not duplicate keys.

This works for me:

import string
from random import choice

def makeme(num):
    value = [choice("ABCDEFGH")]
    key = alph[num]
    return (key, value)


# keys are A,B,C,D,E
dict1 = {makeme(j)[0]:makeme(j)[1] for j in range(5)}
# keys are D,E,F,G,H
# keys D and E are also in dict1
dict2 = {makeme(j+3)[0]:makeme(j+3)[1] for j in range(5)}

# from this you can see dict3 must lose [F] 2 times and lose [E] 1 time
# dict1.values = dict_values([['F'], ['E'], ['G'], ['F'], ['G']])
# dict2.values = dict_values([['F'], ['H'], ['E'], ['A'], ['A']])

dict3 = {k: v for k, v in dict1.items() if v not in dict2.values()} # dict3 = {'C': ['G'], 'E': ['G']}

# from this you can see dict4 must lose [F] 1 time and lose [E] 1 time
# dict1.values = dict_values([['F'], ['E'], ['G'], ['F'], ['G']])
# dict2.values = dict_values([['F'], ['H'], ['E'], ['A'], ['A']])

dict4 = {k: v for k, v in dict2.items() if v not in dict1.values()} # dict4 = {'E': ['H'], 'G': ['A'], 'H': ['A']}
Reply


Messages In This Thread
RE: remove duplicates from dicts with list values - by Pedroski55 - May-24-2024, 06:37 AM

Possibly Related Threads…
Thread Author Replies Views Last Post
  unable to remove all elements from list based on a condition sg_python 3 670 Jan-27-2024, 04:03 PM
Last Post: deanhystad
  Copying the order of another list with identical values gohanhango 7 1,429 Nov-29-2023, 09:17 PM
Last Post: Pedroski55
  Search Excel File with a list of values huzzug 4 1,462 Nov-03-2023, 05:35 PM
Last Post: huzzug
  Comparing List values to get indexes Edward_ 7 1,481 Jun-09-2023, 04:57 PM
Last Post: deanhystad
  Adding values with reduce() function from the list of tuples kinimod 10 3,071 Jan-24-2023, 08:22 AM
Last Post: perfringo
  user input values into list of lists tauros73 3 1,260 Dec-29-2022, 05:54 PM
Last Post: deanhystad
  remove partial duplicates from csv ledgreve 0 932 Dec-12-2022, 04:21 PM
Last Post: ledgreve
  Remove values for weekend in a panda series JaneTan 0 775 Dec-12-2022, 01:50 AM
Last Post: JaneTan
  Remove numbers from a list menator01 4 1,623 Nov-13-2022, 01:27 AM
Last Post: menator01
  Remove if similar values available based on two columns klllmmm 1 1,494 Feb-20-2022, 06:55 PM
Last Post: Larz60+

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020