我是python的新手。我正在尝试从下面的字典中查找并删除重复的列表值:
dict = {'happy':['sun', 'moon', 'bills' 'chocolate'], 'sad':['fail', 'test', 'bills', 'baloon'], 'random': ['baloon', 'france', 'sun'] }
我希望字典字典在从列表中删除重复项后看起来像这样
expectd_dict = {'happy':['sun', 'moon', 'chocolate', 'bills'], 'sad':['fail', 'test','baloon'], 'random': ['france] }
我已经在互联网上寻找解决方案,但没有结果。我尝试创建一个空列表和字典,迭代字典的键和值,也迭代列表值,如果不存在,则将其添加到空列表中,但似乎没有得到所需的结果。
output_dict = {}
output_list = []
for key, value in d.items():
if key not in output_dict.values():
for i in value:
if i not in output_list:
output_list.append(i)
output_dict[key] = output_list
print(output_dict)发布于 2020-02-10 15:03:23
我想你希望进程列表的顺序是'happy‘-> 'random’-> 'sad‘。在列表值中循环,检查它是否在之前的操作中看到,如果没有找到,则将其添加到最终列表中,将其添加到seen_values中。
seen_values = set()
for key in ('happy', 'random', 'sad'):
final_list = []
for value in dict[key]:
if value in seen_values:
continue
seen_values.add(value)
final_list.append(value)
dict[key] = final_listhttps://stackoverflow.com/questions/60142653
复制相似问题