如何使用不同的行在表中运行循环?例如,这是输入([[0,4],[2,4],[1,3]],我想要的输出是[[0,1.5],[2,1.5],[1.5,3]]

2024-05-19 14:01:08 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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



Tags: inmapforifdeftableminelse
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

return语句位于错误的位置。函数将在第一次迭代中退出。 在for循环外取消缩进返回语句。 然后,它将在完成迭代后退出

for row in table:
    row[:] = [avg if x in (mx, mn) else x for x in row]
return table

相关问题 更多 >