python - 根据列表的值获取字典的键
问题描述
我有一个值列表:
['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]
解决方案
您可以使用列表理解:
[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]
推荐阅读
- r - 从 travis-ci 上的 github repo 的特定分支安装特定的 R 包
- javascript - 如何更改 Chrome 扩展内部 HTML 页面
- android - 未通过调用 LinkedIn API Oauth 2.0 版获取公共个人资料 URL
- python - pjsip/pjsua2 - 如何获取音频流以将其发送到 Speech-to-Text 引擎
- javascript - 这些在创建模型之前加密密码的方法之间有区别吗?它们都是异步的吗?
- python - 如果一列包含一个单词,则使用找到的值生成一个新列
- php - 如何在简码中添加图像
- visual-c++ - Net-SNMP:无法在 VC 2017 版本 15 中构建
- html - 为什么必需的属性在百里香中不起作用?
- sql - 如何规范化列引用同一表中不同列的多行的表