【问题标题】:nested for loop in python to do the following在python中嵌套for循环以执行以下操作
【发布时间】:2020-12-07 19:06:17
【问题描述】:

我正在尝试为嵌套的 for 循环编写方程式。我遇到了一个错误,正在尝试了解如何编写它?

ysub =  GPA
0   0.4509999999999996
1   -0.04900000000000038
2   -0.5490000000000004
3   0.20099999999999962
4   -0.4490000000000003
5   0.19099999999999984
6   0.4509999999999996
7   -0.5490000000000004
8   0.25099999999999945
9   0.05099999999999971

代码:

i = range (1,10,1)
m = range (1,10,1)
 RMSEtest = ((1/m)*(ysub[i]^2))

我们必须为每个 ysub 值计算 RMSEtest(m = 1 到 10 的值之和)。

【问题讨论】:

  • 例如,在1/m 中,您试图将整数1 除以range 对象range (1,10,1),这是不可能的。
  • 好吧...thq.so我们怎么写呢?有什么想法吗?
  • @satya,什么是 RMSEtest?如果,正如你的问题所说,你想将 ysub 从 m = 1 到 10 的所有值相加,那么你可以做 sum(ysub[k] for k in m)
  • 试图求解一个方程(谷歌 RMSD)。基本上我正在尝试为 ysub 的所有值求解该方程

标签: python for-loop nested


【解决方案1】:

有很多错误

  1. 您不能像@ForceBru 所说的那样将整数与范围对象相除。

  2. 您的工作不需要 2 个循环

  3. 为了提高整数或浮点数的幂,使用 '**' 代替 '^'

     ysub = [0.4509999999999996, -0.04900000000000038,-0.5490000000000004,0.20099999999999962,-0.4490000000000003, 0.19099999999999984, 0.4509999999999996, -0.549000000000000, 0.25099999999999945, 0.05099999999999971]
    

代码:

for m in range (1,10):
    RMSEtest = ((1/m)*(ysub[m]**2))

根据您的代码,我认为这就是您想要的。

【讨论】:

    【解决方案2】:

    首先这不是一个for循环。您真的不需要向range 添加第三个参数,因为默认值为1。您的问题不清楚您需要 for 循环做什么,并且代码没有帮助。
    对于嵌套的 for 循环,您需要以下内容:

    for x in I:
        for y in m:
            do_something(x, y)
    

    【讨论】:

    • 我正在尝试为 ysub 中的所有 10 个值求解 i = 1 到 10 的 RMSE(google for equation)。
    猜你喜欢
    • 1970-01-01
    • 2021-07-07
    • 2019-12-05
    • 2021-02-15
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多