将列表与字典进行比较 - 如果值与列表匹配,则返回键

1 python dictionary

这是 Python 3.6

我需要帮助将列表与字典进行比较,如果匹配,我需要返回字典键。

champ_ids = [0, 36, 85]

champ_dict = {Bob : 0, Carly: 36, Freddy : 85, Megan : 14, Dilbert : 69}

for item in champ_dict.items() and champ_ids:
    print(item)
Run Code Online (Sandbox Code Playgroud)

这将打印所有匹配的数字,因此在这种情况下0, 36, 85是完美的。Bob, Carly, Freddy如果在两个地方都找到这些值,我如何让它返回(键),而不是返回匹配的值

Ósc*_*pez 7

请注意,问题中的这段代码并没有按照您的想象进行:

for item in champ_dict.items() and champ_ids:
Run Code Online (Sandbox Code Playgroud)

上面并没有检查,如果item在字典和邮件列表(这不是如何inand工作在Python!)。它只是遍历champ_ids列表,仅此而已。试试这个:

champ_ids  = [0, 36, 85]
champ_dict = {'Bob' : 0, 'Carly': 36, 'Freddy' : 85, 'Megan' : 14, 'Dilbert' : 69}
[k for k, v in champ_dict.items() if v in champ_ids]
Run Code Online (Sandbox Code Playgroud)

上面将比较字典中的每个,如果它存在于列表中,它会将相应的添加到输出列表中。例如,这是问题中测试数据的输出:

['Freddy', 'Bob', 'Carly']
Run Code Online (Sandbox Code Playgroud)

现在你可以根据需要使用它,print()如果你愿意的话。