首页 > 解决方案 > 根据列表的值获取字典的键

问题描述

我有一个值列表:

['A','B','C','D']

我有一个字典

{1: ['A','F'],2:['B','J'],3:['C','N'],4:['D','X']}

我想获取列表中每个值的键:

我试过 :

[dict1[x] for x in list]

但是会输出一个错误,因为我没有考虑到 dict 值是一个列表而不是单个值的事实。我怎么能做到这一点?

我想要的输出将是一个包含 list1 值键的列表:

[1,2,3,4]

标签: pythonlistdictionary

解决方案


您可以使用列表理解:

[k for x in lst for k, v in d.items() if x in v]

示例

lst = ['A','B','C','D']
d = {1: ['A','F'],2:['B','J'],3:['C','N'],4:['D','X']}

print([k for x in lst for k, v in d.items() if x in v])
# [1, 2, 3, 4]

推荐阅读