Python 如何更有效地使用功能输入?

Python 如何更有效地使用功能输入?,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,我有一个函数 init_from_checkpoint( ckpt_dir_or_file, assignment_map) 其中assignment\u map支持以下语法: “checkpoint_scope_name/”:“scope_name/”-将使用匹配的张量名称从checkpoint_scope_name加载当前scope_name中的所有变量 比如说, init_from_checkpoint('/tmp/model.ckpt', {'

我有一个函数

init_from_checkpoint(
ckpt_dir_or_file,
assignment_map)
其中
assignment\u map
支持以下语法:

“checkpoint_scope_name/”:“scope_name/”-将使用匹配的张量名称从checkpoint_scope_name加载当前scope_name中的所有变量

比如说,

init_from_checkpoint('/tmp/model.ckpt',
                     {'old_scope_1/var1': 'new_scope_1/var1',
                      'old_scope_1/var2': 'new_scope_1/var2'})
现在,我有两个清单

old_scope_1_list=[old_scope_1/var1, old_scope_1/var2, ...,old_scope_1/var100]
new_scope_1_list=[new_scope_1/var1, new_scope_1/var2, ...,new_scope_1/var100]
如何使用
old\u scope\u 1\u list
new\u scope\u list
从\u checkpoint调用函数
init\u,以便在python中有效地调用函数?我目前的解决方案是,在不使用两个列表的情况下,按照下面的方式写100行,但这种方式看起来无效

init_from_checkpoint('/tmp/model.ckpt',
                         {'old_scope_1/var1': 'new_scope_1/var1',
                          'old_scope_1/var2': 'new_scope_1/var2',
                          ...
                          'old_scope_1/var100': 'new_scope_1/var100'})

您可以使用
zip
从旧的\u范围\u 1\u列表和新的\u范围\u 1\u列表中创建配对列表。然后在该对上使用
dict
,创建所需的映射

In [67]: old_scope_1_list=['old_scope_1/var1', 
'old_scope_1/var2','old_scope_1/var100']
...: new_scope_1_list=['new_scope_1/var1', 
'new_scope_1/var2','new_scope_1/var100']


In [68]: zip(old_scope_1_list, new_scope_1_list)
Out[68]: <zip at 0x7f4dd084c748>

In [69]: x = zip(old_scope_1_list, new_scope_1_list)

In [70]: dict(x)
Out[70]: 
{'old_scope_1/var1': 'new_scope_1/var1',
'old_scope_1/var100': 'new_scope_1/var100',
'old_scope_1/var2': 'new_scope_1/var2'}

您可以使用
zip
从旧的\u范围\u 1\u列表和新的\u范围\u 1\u列表中创建配对列表。然后在该对上使用
dict
,创建所需的映射

In [67]: old_scope_1_list=['old_scope_1/var1', 
'old_scope_1/var2','old_scope_1/var100']
...: new_scope_1_list=['new_scope_1/var1', 
'new_scope_1/var2','new_scope_1/var100']


In [68]: zip(old_scope_1_list, new_scope_1_list)
Out[68]: <zip at 0x7f4dd084c748>

In [69]: x = zip(old_scope_1_list, new_scope_1_list)

In [70]: dict(x)
Out[70]: 
{'old_scope_1/var1': 'new_scope_1/var1',
'old_scope_1/var100': 'new_scope_1/var100',
'old_scope_1/var2': 'new_scope_1/var2'}

可能的重复您也可以有一个变量名列表,只需字符串连接每个具有旧/新作用域的变量名即可获得所需内容,这样您就只有一个地方可以更改内容。可能的重复您也可以有一个变量名列表,只需字符串连接每个具有旧/新作用域的变量名你可以得到你需要的东西,所以你只有一个地方可以换东西。太好了。让我检查一下,确认一下,谢谢。效果很好。让我检查一下,确认一下,谢谢。它工作得很好