在函数python中使用迭代器作为变量名

时间:2015-05-17 05:42:00

标签: python

我看到了这个问题,我想知道是否有可能用某些东西来解决我遇到的问题。

我定义了数学对象列表

  

OBJ1,OBJ2,...,objn

我有一个函数fun,可以对这些对象做一些事情

sol1=fun(obj1)
sol2=fun(obj2)
...
soln=fun(objn)

现在我想要的是使用for循环来计算所有sol1。我知道我可以将所有对象放在列表中,但我想知道是否可以做其他事情。

3 个答案:

答案 0 :(得分:1)

sol_iterator = (fun(x) for x in obj_iterator)

答案 1 :(得分:1)

  

我定义了数学对象obj1,obj2,...,objn

的列表

所以你有

objs = [obj1, obj2, obj3]

并想要创建结果列表?

最简单的事情是

sols = [fun(obj) for obj in objs]

答案 2 :(得分:0)

所以你有:

obj1,obj2,...,objn 

和一些功能,让我们说:

def func(obj):
    print(obj*2))

所以,你正在寻找这个:

for i in range(1,n+1):
   fun(eval("obj"+str(i)))