我试图调用在字典创建函数中定义的值。 当前的问题是在没有定义时将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'}
此功能不仅用于命名,还用于生成数据字典。在函数外部使用时,此脚本按预期工作。
答案 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
以包含实际数字。