Python ::如何在定义函数时将%d插入变量

时间:2018-07-13 00:38:16

标签: python-2.7

如何将%d插入def代码中的变量中,以使变量根据赋予该函数的参数而变化?

def ratio(iterA, iterB):
   a=0.0
   b=0.0
   for i in range(20000):
       if (data2.iter%d[i] % iterA) < 0.2:
           if (data2.iter%d[i] % iterB) < 0.2:
               a += 1
           else:
               b += 1
   return a/b

此功能当前发出各种错误。如何使data2.iter〜输入变量根据我给定的参数iterA和iterB改变?例如,如果我将iterA设置为1,将iterB设置为15,则希望将生成的代码计算为

a1=0.0
b1=0.0
for i in range(20000):
    if data2.iter1[i] < 0.2:
        if data2.iter15[i] < 0.2:
            a1 += 1
    else:
        b1 += 1
print(a1/b1)

谢谢。

1 个答案:

答案 0 :(得分:1)

您希望data2是一个二维数组。然后您可以使用:

if data2[iterA][i] < 0.2:
     if data2[iterB][i] < 0.2:
         #...

好的,好的。如果您确实需要这样做,getattr(obj, name)是您所需要的。即)

if getattr(data2, 'iter%d' % iterA)[i] < 0.2:
    #....

但是不要进行20000次查找!将其移动到循环之前:

listA = getattr(data2, 'iter%d' % iterA)
#...
for i in range(20000):
    if listA[i] < 0.2:
        #...