首页 > 解决方案 > 在字典python 3中查找和替换列表值

问题描述

我是 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)

标签: python-3.xdictionary

解决方案


认为您想要按“快乐”->“随机”->“悲伤”的顺序处理列表。在列表值中循环,检查它是否在之前的操作中看到,如果没有找到,将其添加到最终列表中,将其添加到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_list

推荐阅读