Python:将函数中定义的变量作为输入调用

时间:2017-12-20 16:37:22

标签: python python-2.7

我试图调用在字典创建函数中定义的值。 当前的问题是在没有定义时将i作为输入调用。

当前代码:

mass_list=[10.0,15.0,20.0]
def dict_by_masslist(mass_list,input_value):
    dict_created=[]
    for i in mass_list:
        dict_created.append((i,inputvalue))
    dict_created=dict(dict_created)
    return dict_created

pt_dict_pre_names=dict_by_masslist(mass_list,'pt_'+str(int(i))+'_pre')

目标输出:

pt_dict_pre_names = {10.0: 'pt_10_exp', 15.0: 'pt_15_exp', 20.0: 'pt_20_exp'}

此功能不仅用于命名,还用于生成数据字典。在函数外部使用时,此脚本按预期工作。

1 个答案:

答案 0 :(得分:4)

只需使用dictionary comprehension代替:

 mass_list = [10.0, 15.0, 20.0]
 pt_dict_pre_names = {x: 'pt_{}_exp'.format(int(x)) for x in mass_list}

此处会发生什么:对于mass_list中的每个数字,我们会将数字映射到formatted的字符串pt_number_exp以包含实际数字。