如何通过diff行遍历表?例如,这是输入[[[0,4],[2,4],[-1,3]],输出我想要的是这个[[0,1.5],[2,1.5],[1.5,3] ]

问题描述 投票:0回答:2

//只是更改第一行的值,而不更改整个表?谁能告诉我如何在整个表中运行循环

def remove_outliers(table):
     mx = max(map(max, table))
     mn = min(map(min, table))
     avg = (mx + mn) / 2
     for row in table:
         row[:] = [avg if x in (mx, mn) else x for x in row]
         return table


python list for-loop rows
2个回答
0
投票

我认为您的return table是错误的。处理完第一行后,它将返回。试试这个:

def remove_outliers(table):
    mx = max(map(max, table))
    mn = min(map(min, table))
    avg = (mx + mn) / 2
    for row in table:
        row[:] = [avg if x in (mx, mn) else x for x in row]
    return table


0
投票

return语句在错误的位置。该函数将在第一次迭代中退出。非缩进的return语句超出for循环。然后它将在完整的迭代后退出

© www.soinside.com 2019 - 2024. All rights reserved.