//只是更改第一行的值,而不更改整个表?谁能告诉我如何在整个表中运行循环
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 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
return语句在错误的位置。该函数将在第一次迭代中退出。非缩进的return语句超出for循环。然后它将在完整的迭代后退出