内存溢出,求帮助调整代码


def bin_woe(data_1, data_2, data_3, data_4, y, x, list_cut):
    list_woe, data_1 = func1(data_1, y, x, list_cut)
    # 要把下面的改成循环体
    data_2 = func2(data_2, x, list_cut, list_woe)
    data_3 = func2(data_3, x, list_cut, list_woe)
    data_4 = func2(data_4, x, list_cut, list_woe)
    return data_1, data_2, data_3, data_4, list_woe

SAS痛苦转Python中,这是woe计算和编码的逻辑,当前代码逻辑没问题,主要问题是现在内存溢出,需要做成循环return,然后尽可能多地gc.collect()

没太懂你的意思,你是说得到一次data_1, data_2, data_3, data_4, list_woe他们的值就循环返回一次?,你这里不是做到了,这里已经返回,如果改成循环体,条件是什么,在循环内返回还是循环外返回,如果在循环内返回 用yield ,循环外返回,你用return就可以