Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to remove duplicate values from dict?

I'm trying to remove duplicate values in my dict but its not working:

samples_antibiotics_with_duplicates = {'S00541-09': ['Streptomycin', 'Sulfamethoxazole', 'Trimethoprim', 'Spectinomycin', 'Streptomycin', 'Streptomycin', 'Trimethoprim']}
samples_antibiotics = {}
    for key,value in samples_antibiotics_with_duplicates.iteritems():
      if value not in samples_antibiotics.values():
        samples_antibiotics[key] = value
print samples_antibiotics

This prints:

{'S00541-09': ['Streptomycin', 'Sulfamethoxazole', 'Trimethoprim', 'Spectinomycin', 'Streptomycin', 'Streptomycin', 'Trimethoprim']}
like image 965
bioinf80 Avatar asked Dec 07 '25 08:12

bioinf80


2 Answers

You can try this:

samples_antibiotics_with_duplicates = {'S00541-09': ['Streptomycin', 'Sulfamethoxazole', 'Trimethoprim', 'Spectinomycin', 'Streptomycin', 'Streptomycin', 'Trimethoprim']}

new_dict = {a:list(set(b)) for a, b in samples_antibiotics_with_duplicatates.items()}
like image 179
Ajax1234 Avatar answered Dec 08 '25 22:12

Ajax1234


If you don't care about retaining original order then set(my_list) will remove all duplicates.

If you want to retain original order then list(OrderedDict.fromkeys(my_list))

like image 33
Brian M. Sheldon Avatar answered Dec 08 '25 20:12

Brian M. Sheldon



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!