根据列表中的值获取字典的键

ge0*_*rge 3 python dictionary list

我有一个值列表:

['A','B','C','D']
Run Code Online (Sandbox Code Playgroud)

我有一个命令

{1: ['A','F'],2:['B','J'],3:['C','N'],4:['D','X']}
Run Code Online (Sandbox Code Playgroud)

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

我试过了 :

[dict1[x] for x in list]
Run Code Online (Sandbox Code Playgroud)

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

我想要的输出将是带有list1值键的列表:

[1,2,3,4]
Run Code Online (Sandbox Code Playgroud)

Aus*_*tin 5

您可以使用列表理解:

[k for x in lst for k, v in d.items() if x in v]
Run Code Online (Sandbox Code Playgroud)

范例

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]
Run Code Online (Sandbox Code Playgroud)