我正在编写一个简单的函数,我想迭代地运行它,以便它得到自己的输出,执行一些操作,并继续这样做,直到达到一定的次数.

我try 了以下方法:

def optimize(lst):
    A = lst[0]
    B = lst[1]
    C = lst[2]
    # perform some operation, for example,
    A = A+1
    B = B+1
    C = C+1
    new_lst = [A,B,C]
    lst[:] = new_lst # this overwrites the original param with the new output
    print(new_lst)
    return(new_lst)

for i in range(3):
    optimize([1,2,3])

        

使用相同的输入重复三次,即1、2、3和打印[2、3、4].它不会在每次迭代中更新.我的意思是,它需要[2,3,4],然后吐出[3,4,5]等等.

注意:我的函数中的操作要复杂得多.为了表达的目的,我 Select 了过度简化它.

推荐答案

您只需要捕获函数返回的值,然后下次将其传递回函数

data = [1,2,3]
for i in range(3):
    data = optimize(data)

编辑以添加:

您不需要"覆盖原始列表"操作,因为您返回的是新列表,而不是就地更新.此外,返回值周围的括号也没有意义.

def optimize(lst):
    A = lst[0]
    B = lst[1]
    C = lst[2]
    # perform some operation, for example,
    A = A+1
    B = B+1
    C = C+1
    new_lst = [A,B,C]
    print(new_lst)
    return new_lst

Python相关问答推荐

如何在虚拟Python环境中运行Python程序?

cv2.matchTemplate函数匹配失败

无法在Docker内部运行Python的Matlab SDK模块,但本地没有问题

使用NeuralProphet绘制置信区间时出错

当点击tkinter菜单而不是菜单选项时,如何执行命令?

无法连接到Keycloat服务器

如何从列表框中 Select 而不出错?

为什么np. exp(1000)给出溢出警告,而np. exp(—100000)没有给出下溢警告?

寻找Regex模式返回与我当前函数类似的结果

干燥化与列姆化的比较

ModuleNotFoundError:没有模块名为x时try 运行我的代码''

Flask运行时无法在Python中打印到控制台

将一个双框爆炸到另一个双框的范围内

如何将一组组合框重置回无 Select tkinter?

浏览超过10k页获取数据,解析:欧洲搜索服务:从欧盟站点收集机会的微小刮刀&

高效地计算数字数组中三行上三个点之间的Angular

根据边界点的属性将图划分为子图

PyTorch变压器编码器中的填充掩码问题

Wagail:当通过外键访问索引页时,如何过滤索引页的子项

如何获得症状表达式的真实部分?