无法对具有整数值的列表进行迭代TypeError:zip参数#1必须支持迭代

2024-09-28 19:11:10 发布

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

我试图从这个方法返回一个简单的列表predictcon1con2con3con4是整数值为0和1的列表。你知道吗

def prediction():
    Volume_avg = []
    Volume_avg = movingavg(Volume_avg, F)
    m_Avg_price = []
    m_Avg_price = movingavg(m_Avg_price, C)
    con1 = con1_leaning(D, B, E)
    con2 = con2_leaning(D, B, m_Avg_price)
    con3 = con3_minvolume(F, Volume_avg)
    con4 = con4_minFluctuation(E, B, D)

    predict = []
    for i, j, k, l in zip(con1, con2, con3, con4):
        if i == j == k == l == 1:
            predict.append("up")
        elif i == j == 0 & k == l == 1:
            predict.append("down")
        else:
            predict.append("Can't say")

    return predict

但是,当我尝试运行此代码时,出现如下错误:

File "E:/Projects/Forecasting Trends/Forecast.py", line 117, in prediction
    for i, j, k, l in zip(con1, con2, con3, con4):
TypeError: zip argument #1 must support iteration

我试着迭代1和0的整数值,对吗?那么,为什么它会显示一个错误,它们是不可编辑的呢?如果有人能告诉我哪里出了问题,我会很高兴的。你知道吗

编辑:尝试打印con1,但显示None。我不明白为什么它会这么说?我还添加了方法con1_leaning。这里,LowpriceHighpriceCloseprice都是带有浮点值的列表(这次验证)

def con1_leaning(Lowprice, Highprice, Closeprice):  # 1 if high, 0 if low
    con1_list = []
    for i, j, k in zip(Highprice, Closeprice, Lowprice):
        if float(i - j) < float(j - k):
            con1_list.append(1)
        else:
            con1_list.append(0)
    return con1_list

Tags: inifzippricepredictlistavgvolume