唯一列表字典中的值

2024-10-05 15:25:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在字典值中有唯一的列表。我用这个Uniqueness for list of lists实现了这一点

我的疑问是如何把数据写回字典。到目前为止,我已经做到了:

  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)]

如果你看我的字典里有那么多重复的值。我已经消除了复制品。现在,我该如何把它转换回dict呢?你知道吗


Tags: ofin列表for字典selectdictlist
2条回答

您就快到了,在for循环中,跟踪键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

使用简单的迭代

例如:

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)

输出:

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

相关问题 更多 >