python-2.7 - Python:: 定义函数时如何将 %d 插入变量
问题描述
如何将 %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
此功能目前正在发出各种错误。如何根据我给出的参数 iterA 和 iterB 改变 data2.iter~ 输入变量?例如,如果我将 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)
提前致谢。
解决方案
你想data2
成为一个二维数组。然后你可以使用:
if data2[iterA][i] < 0.2:
if data2[iterB][i] < 0.2:
#...
好的好的。如果你真的需要这样做,getattr(obj, name)
那就是你正在寻找的。IE)
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:
#...
推荐阅读
- python - 更改非常大的列的类型 - Python MemoryError
- c++ - 使用节点插件将数组从nodejs传递到C++
- firebase - Firebase 错误未捕获(承诺中) FirebaseError:缺少权限或权限不足
- javascript - Workbox CacheableResponse 插件使用 302-Statuscode 缓存文件
- reactjs - 材质 UI 对话框,适合对话框高度内的图像
- string - Power BI/Power Query 错误:在重复数据删除字符串计数中检测到循环依赖项
- java - 如何在 Java Processing 3.x 中获取图像前面的对象?
- visual-studio-code - 在命令面板中找不到“终端:管理工作区外壳权限”
- javascript - 如何更改文本输入中占位符的颜色
- java - 在java中将结果集保存到数组