python-3.x - 在字典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)
解决方案
认为您想要按“快乐”->“随机”->“悲伤”的顺序处理列表。在列表值中循环,检查它是否在之前的操作中看到,如果没有找到,将其添加到最终列表中,将其添加到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
推荐阅读
- python - 如何从用户那里获取输入,将它们放入列表中,然后从中随机选择一个,而无需多次询问
- angular - 控制台日志不再在开发环境中显示正确的文件名
- javascript - Reducer 无法读取 action.type REDUX
- android - CoordinatorLayout 中的渲染错误 - 我该如何解决?
- javascript - 如何使用javascript将csv更改为json数组
- css - css 属性问题“背景剪辑:文本;” 和 W3C 验证器
- jestjs - Jest-Puppeteer 测试随机失败而没有输出
- groovy - 如何在 Groovy 中使用 Dagger?
- javascript - 奇数值和 1 如何在 js 中给出“真”?
- python - 在python中将一些列转换为行,将一列的行转换为列