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

标签 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)

谢谢。

最佳答案

我敢推荐一本字典中的字典吗?

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

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

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

关于Python 将字符串输入与现有字典匹配的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24828384/

相关文章:

用于参数化 CAD 的 Python 模块

python - 优化变更解决方案

python - 指向 403 Forbidden 的 Django Ajax 表单提交

python - 如何用 Python 解析 SOAP XML?

python - 为什么 MySQL 连接查询的输出作为嵌套列表项返回?

batch-file - 如何从命令行为 Visual Studio 创建简单的构建脚本?

windows - 批处理脚本 if else 命令

javascript替换多个字符

c - 如何从 C 中的字符数组中获取字符串?

batch-file - 如何获取分配给在循环内处理的环境变量的逗号分隔字符串的每个项目?