Python 将列表与字典的每个值(字符串列表)进行比较

Python 将列表与字典的每个值(字符串列表)进行比较,python,dictionary,Python,Dictionary,我有一个药物列表,我想将其与字典进行比较,字典键是药物代码,字典值是药物列表。我只想保留字典中与药物清单相对应的药物 示例列表: l = ['sodium', 'nitrogen', 'phosphorus'] 和字典: d = {'A02A4': ['sodium', 'nitrogen', 'carbon']} 我希望我的最终词典看起来像: {'A02A4': ['nitrogen', 'sodium']} 删除列表中不存在的值后,要对字典中的所有键、值对执行此操作,可以使用字典理

我有一个药物列表,我想将其与字典进行比较,字典键是药物代码,字典值是药物列表。我只想保留字典中与药物清单相对应的药物


示例列表:

l = ['sodium', 'nitrogen', 'phosphorus']
和字典:

d = {'A02A4': ['sodium', 'nitrogen', 'carbon']}

我希望我的最终词典看起来像:

{'A02A4': ['nitrogen', 'sodium']}

删除列表中不存在的值后,要对字典中的所有键、值对执行此操作,可以使用字典理解,并仅保留与列表相交的值:

l = ['sodium', 'nitrogen', 'phosphorus']
d = {'A02A4': ['sodium', 'nitrogen', 'carbon']}

{i: list(set(v) & set(l)) for i,v in d.items()}
{'A02A4': ['nitrogen', 'sodium']}
或等效地,使用:


欢迎来到stackoverflow!看看你已经尝试了什么,并明确知道你在工作中遇到了什么问题,这会很有帮助attempt@G.Anderson我甚至不知道从哪里开始。每个键只有一个值就足够简单了,但我不知道如何在键上附加一个列表来实现这一点。谢谢!这成功了!我意识到我也没有完全规范我的列表,所以这也是一个问题。再次感谢!很高兴这有帮助。别忘了接受答案。非常感谢。
{i: list(set(v).intersection(l)) for i,v in d.items()}
{'A02A4': ['nitrogen', 'sodium']}