简体   繁体   English

字典中的唯一列表值

[英]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? 现在,我该如何将其转换回dict?

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']]}

You are almost there, in the for loop, keep track of the keys k , and save unique_data in that dictionary at that key: 在for循环中,您unique_data了,跟踪键k ,并在该键的那个字典中保存unique_data

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM