Python noob在这里请原谅我,如果我有一个简单的问题。我想将变量名设置为我使用for循环传递的任何值。
roles = ["A" , "B" , "C"]
for role in roles:
print (role)
"outPutFor"+role = function_that_gives_outputforRole(role)
所以我希望我的变量可以阅读outPutForA
,outPutForB
和outPutForC
。
但我得到以下错误
"outPutFor"+role = function_that_gives_outputforRole(role)
^
SyntaxError: can't assign to operator
我在这里缺少什么?
答案 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 roles
将insert/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
将这两个列表合并为一个列表,以合并输入/输出值。