比较一个列表和字典的每个值(这是一个字符串列表)

2024-05-16 17:56:24 发布

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

我有一个药物列表,我想把它和字典比较,字典键是药物代码,字典值是药物列表。我只想保留字典中与药品目录相对应的药品


示例列表:

l = ['sodium', 'nitrogen', 'phosphorus']

和字典:

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

我希望我的最后一本字典看起来像:

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

删除列表中不存在的值,并对字典中的所有键、值对执行此操作


Tags: 代码目录示例列表字典药物carbon药品
1条回答
网友
1楼 · 发布于 2024-05-16 17:56:24

可以使用字典理解和sets仅保留与列表相交的值:

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

{i: list(set(v) & set(l)) for i,v in d.items()}
{'A02A4': ['nitrogen', 'sodium']}

或者等效地,使用^{}

{i: list(set(v).intersection(l)) for i,v in d.items()}
{'A02A4': ['nitrogen', 'sodium']}

相关问题 更多 >