Duck_dragon
Duck_dragon

Reputation: 450

Unique lists values in dictionary

I am trying to have unique lists in dictionary values. I have achieved that using this Uniqueness for list of lists

My doubt is how do I write the data back to the dictionary. So far this is what I have done:

  final_dict = {'SELECT: AutoSelect DF2F': [['D80', 'FoldersDF2FAutoSelect'], ['DF90', 'FoldersDF2FAutoSelect'], ['DF80', 'FoldersDF2FAutoSelect'], ['DF90', 'PB:FoldersDF2FAutoSelect']], 'SELECT: TB70001': [['DF80', 'FolderSelected'], ['DF90', 'PB:FolderSelected'], ['DF80', 'FolderSelected'], ['DF90', 'FolderSelected']]}
    for v in final_dict.values():
        unique_data = [list(x) for x in set(tuple(x) for x in v)]

If you look my dictionary has so many duplicate lists a values. I have eliminated the duplicates. Now, how would I convert it back to dict?

Upvotes: 0

Views: 69

Answers (2)

Eshita Shukla
Eshita Shukla

Reputation: 811

You are almost there, in the for loop, keep track of the keys k, and save unique_data in that dictionary at that key:

final_dict = {'SELECT: AutoSelect DF2F': [['D80', 'FoldersDF2FAutoSelect'], ['DF90', 'FoldersDF2FAutoSelect'], ['DF80', 'FoldersDF2FAutoSelect'], ['DF90', 'PB:FoldersDF2FAutoSelect']], 'SELECT: TB70001': [['DF80', 'FolderSelected'], ['DF90', 'PB:FolderSelected'], ['DF80', 'FolderSelected'], ['DF90', 'FolderSelected']]}
for k,v in final_dict:
    unique_data = [list(x) for x in set(tuple(x) for x in v)]
    final_dict[k] = unique_data

Upvotes: 0

Rakesh
Rakesh

Reputation: 82765

Using a simple iteration

Ex:

final_dict = {'SELECT: AutoSelect DF2F': [['D80', 'FoldersDF2FAutoSelect'], ['DF90', 'FoldersDF2FAutoSelect'], ['DF80', 'FoldersDF2FAutoSelect'], ['DF90', 'PB:FoldersDF2FAutoSelect']], 'SELECT: TB70001': [['DF80', 'FolderSelected'], ['DF90', 'PB:FolderSelected'], ['DF80', 'FolderSelected'], ['DF90', 'FolderSelected']]}
for k, v in final_dict.items():
    final_dict[k] = [list(x) for x in set(tuple(x) for x in v)]
pprint(final_dict)

Output:

{'SELECT: AutoSelect DF2F': [['DF90', 'FoldersDF2FAutoSelect'],
                             ['D80', 'FoldersDF2FAutoSelect'],
                             ['DF90', 'PB:FoldersDF2FAutoSelect'],
                             ['DF80', 'FoldersDF2FAutoSelect']],
 'SELECT: TB70001': [['DF90', 'PB:FolderSelected'],
                     ['DF80', 'FolderSelected'],
                     ['DF90', 'FolderSelected']]}

Upvotes: 2

Related Questions