将变量连接到变量

时间:2017-04-19 14:46:43

标签: python

Python noob在这里请原谅我,如果我有一个简单的问题。我想将变量名设置为我使用for循环传递的任何值。

roles = ["A" , "B" , "C"]
for role in roles:
    print (role)
    "outPutFor"+role = function_that_gives_outputforRole(role)

所以我希望我的变量可以阅读outPutForAoutPutForBoutPutForC

但我得到以下错误

    "outPutFor"+role = function_that_gives_outputforRole(role)
           ^
SyntaxError: can't assign to operator

我在这里缺少什么?

2 个答案:

答案 0 :(得分:0)

您无法创建动态命名的变量。但你可以使用python dict之类的

roles = ["A" , "B" , "C"]
outputs = {}
for role in roles:
    print (role)
    outputs["outPutFor"+role] = function_that_gives_outputforRole(role)

或使用来自'角色的元素创建dict。列表作为键。像

roles = ["A" , "B" , "C"]
outPutFor = {}
for role in roles:
    print (role)
    outPutFor[role] = function_that_gives_outputforRole(role)
    print(outPutFor[role])

答案 1 :(得分:0)

如果您正在寻找存储此函数每次迭代的output的方法,则可以创建一个名为list的{​​{1}},例如results },您可以for each role in rolesinsert/assign的输出放入function_that_gives_outputforRole列表。

示例:

results

在此示例中,您可以访问每个角色的输出值,如下所示:

roles = ["A" , "B" , "C"]
results = []
for i, role in enumerate(roles):
    results[i] = function_that_gives_outputforRole(role)

您还可以使用results[0] = function_that_gives_outputforRole("A") results[1] = function_that_gives_outputforRole("B") results[2] = function_that_gives_outputforRole("C") 结构来存储每个输出,如kvorobiev's answer中所述。

如果需要,您可以dict将这两个列表合并为一个列表,以合并输入/输出值。