python中'range' object has no attribute 'remove'错误。

图片说明
相关的代码:
图片说明

182-203行

def tensor_ttv(core, Ui_list, remove_k=None):
    '''
    Tensor times vector product (use sktensor library)
    -----------
    core = core tensor
    Ui_list = list of U_i to be multiplied
    remove_k = do not multiply in k-th mode
    return a scalar or np.array
    '''
    dt_core = sktensor.dtensor(core)
    assert (dt_core.ndim == len(Ui_list)), "tensor_ttv: core and U must be tha same dimension."
    #
    modes = range(len(Ui_list))
    if remove_k is not None:
        modes.remove(remove_k)
    #
    out_core = dt_core.ttv(tuple(Ui_list), modes)
    #
    if len(out_core) == 1:  # out_core is a scaler
        return (out_core[0])
    else:
        return (np.array(out_core))

137-141行

            for k in range(ndims):
                step = lr * reg * U[k][ind[k]].copy()
                step += lr * e_ijk * tensor_ttv(core, Ui_list, k)
                U[k][ind[k]] -= step
                Ui_list = [U[k][ind[k]] for k in range(ndims)]

294-304行

    core, U = TPTF(X, Xtest, dims, rank, args.reg, args.regS, args.lr, args.lrS, args.maxEpo)
    save_model(args, core, U)

    # Evaluation
    pred = pred(Xtest[0], core, U)
    rmse = RMSE(Xtest[1], pred)
    save_result(args, rmse)

    end_time = time.time()
    logger.info('RMSE: {:.4f}'.format(rmse))
    logger.info('Total Time: {:.1f}s'.format(end_time - start_time))

请问一下这个问题应该怎么解决?

在range(x,y)外面套一个list()
成这样list_1=list(range(x,y))

range是不可变序列,没有remove属性

modes = range(len(Ui_list))
->
modes = list(ange(len(Ui_list)))