我正在尝试扩展一些代码。
什么有效:
pretrained_dict = {k: v for k, v pretrained_dict.items if k in model_dict}
但是,如果我将其扩展为:
pretrained_dict = {k: v if k in model_dict else k1:v1 for k, v, k1, v1 in zip(pretrained_dict.items(), model_dict.items()) }
代码失败,如果我把 else 放在最后它仍然失败:
pretrained_dict = {k: v if k in model_dict for k, v, k1, v1 in zip(pretrained_dict.items(), model_dict.items()) else k1:v1}
^
SyntaxError: invalid syntax
如何在两个列表上使用 if else 条件构造键值对?
最佳答案
您可以使用ChainMap
无需使用推导式即可实现您想要的目标
from collections import ChainMap
pretrained_dict = ChainMap(pretrained_dict, model_dict)
这将返回一个类似字典的对象,该对象将首先在 pretrained_dict
中查找键,如果不存在,则在 model_dict
中查找键
关于python - 正在构造 key :Value pair from list comprehension in Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59112905/