Python简单方法将字符串输入与现有字典匹配

时间:2014-07-18 15:13:04

标签: python string batch-file dictionary

我正在编写一个将在多个表单上运行的测试。我创建了一个批处理文件,它将发送一个包含表单名称的参数(因此从技术上讲,测试每个批处理文件只运行一次)。我有一个字典用于每个测试,我想在其中匹配参数的输入。所以,让我们说:

import sys

form1 = {
  a = 3,
  b = 4
}
form2 = {
  a = 7,
  b = 8
}

args = sys.argv[1] #this would be the form input as a string; example: "form1"

我想让它知道" form1"与字典form1匹配。显然,我可以做类似的事情:

if args == "form1":
  form = form1
elif args == "form2":
  form = form2
...

然而,通过27次测试,我宁愿不必处理。有没有更好的方法呢?有点像:

form = matchvar(args)
runtest(form)

感谢。

2 个答案:

答案 0 :(得分:2)

我敢建议使用字典词典吗?

formdict = { "form1": form1, "form2": form2 }

然后,您可以使用formdict.get(args,[])访问正确的词典。

>>> formdict["form1"]["a"]
3
>>> formdict["form2"]["a"]
7

答案 1 :(得分:1)

使用包含表单创建字典,然后使用从命令行获取的值查找键:

forms = dict()
forms['form1'] = {a:3, b:4}
forms['form2'] = {a:7, b:8}

form = forms.get(args)
if form:
   runtest(form)
else:
   print('Invalid form: {}'.format(args))