python - 正在构造 key :Value pair from list comprehension in Python

标签 python python-3.x dictionary pytorch

我正在尝试扩展一些代码。

什么有效:

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/

相关文章:

python - 动态创建 lambda 函数

json - 将 json 数据更改为 Angular 2 中的 Typescript 接口(interface)对象

java - 从 Main 方法传递参数

c# - 订购字典

python - 值错误: Length of values does not match length of index in nested loop

Python 从 Django 启动和管理外部进程

python-3.x - python的新手,我需要从输出中绘制一个条形图,以百分比表示

python - 如何增加屏幕尺寸并将其置于显示器中央?

python - Django - 何时最好计算大量数据的统计信息

python - 调试 Python 3 运行时错误