在命令行输入(python)中使用字符串来引用字典

时间:2017-02-24 05:09:02

标签: python dictionary

我的python代码中有一些预定义的词典,例如

Parameter_A = {'Alpha':0.31, 'Beta':0.69}
Parameter_B = {'Alpha':0.55, 'Beta':0.75}

在执行python脚本( foo.py )期间,我指的是我想要使用的所选参数字典( Parameter_ A 或参数_ B )。像:

python foo.py A

在python脚本中我有:

var = sys.argv[1]
Param = 'Parameter_' + var

该行(在脚本中)

print 'Param = ', Param

给出输出:

Param = Parameter_A

但是,当我尝试使用此方法访问字典中的元素时,

Param['Alpha']

我收到错误:

NameError: name 'Param' is not defined

我可以在这种方法中看到' Param' (其字符串Parameter_A作为其值)的类型为' str'。

但是,我真的很感激,如果有人能告诉我如何能够采取“A'或者' B'作为命令行参数,用于指示我的代码应使用的两个词典中的哪一个(Parameter_A或Parameter_B)。

1 个答案:

答案 0 :(得分:1)

请注意,Param = 'Parameter_' + var只会创建一个字符串Parameter_A而不是Parameter_A的值,无论如何,在阅读您的代码时,为了创建类似的内容,您可以使用{{ 1}}或globals

使用全局

eval

使用eval

  var = sys.argv[1]
  Param = globals()['Parameter_' + var]  
  # here you are refering `Prameter_A` as `Param`
  print 'Param = ', Param  
  print 'Param[Alpha] = ', Param['Alpha']