python - Python - 列表和字典键之间的交集
问题描述
我有这个清单:
list1 = [{'Hello'}, {'Welcome'}, {'BYE'}]
我有一本字典:
dict1 = {'Welcome': 5, 'BYE': 3, 'How are you': 3}
我希望结果是这样的:
dict2 = {'Welcome': 5, 'BYE': 3}
根据这个帖子。我试过了:
dict2 = {k: dict1[k] for k in (dict1.keys() & list1)}
但它说:
TypeError:不可散列的类型:'set'
我是否需要先制作list1,如下所示:
list1 = ['Hello', 'Welcome', 'BYE']
如果这是问题所在,那该怎么办?
解决方案
您可以从以下值创建一组值list1
:
list1 = [{"Hello"}, {"Welcome"}, {"BYE"}]
dict1 = {"Welcome": 5, "BYE": 3, "How are you": 3}
dict2 = {k: dict1[k] for k in (dict1.keys() & {v for s in list1 for v in s})}
print(dict2)
印刷:
{'BYE': 3, 'Welcome': 5}
推荐阅读
- python - Python:尝试创建一个扫描股票列表并返回间隔的循环
- scala - 如何在 Kubernetes 上读取 spark-submit 上传的文件
- c# - 他们是一种在单击按钮时创建意图的单一对象的方法吗
- bash - 标题的 PS1 如何不覆盖提示的 PS1
- python - 带有语句问题的 Python
- python - 从数据框字符串列中提取日/年并求和 [Python]
- html - 如果受容器不透明度的影响,则透明椭圆中的红色边框
- python - 正确的面罩检测
- apache-spark - Spark 在 Kubernetes 云引擎上仅使用一个节点提交,请求一个 cpu
- java - java.util.concurrent.atomic.LongAdder 类的可行性