while循环崩溃时有多个python附加函数

问题描述 投票:0回答:1

尝试通过依次从三个较小的列表中追加项目来打印复合列表:

def final_xyz_lister():
    global final_xyz_list
    final_xyz_list = []
    step=0
    while step==0:
        final_xyz_list.append(carbon_final_list[step]) 
        final_xyz_list.append(oxygen_final_list[step]) 
        final_xyz_list.append(hydrogen_final_list[step]) 
        step=+1
    while 0 < step < 50:   
        final_xyz_list.append(carbon_final_list[step]) 
        final_xyz_list.append(oxygen_final_list[step]) 
        final_xyz_list.append(hydrogen_final_list[step]) 
        step=+1
    else:
        pass   

如果我注释掉第二个while循环,则按预期方式将列表的第一个元素打印在列表中,但是引入第二个while循环会导致MemoryError。

python list while-loop append
1个回答
0
投票
无需将这三个项目附加在2个不同的while循环中。如果您将其用于循环,也将更加简单。在这种情况下:

for step in range(0, 50): final_xyz_list.append(carbon_final_list[step]) final_xyz_list.append(oxygen_final_list[step]) final_xyz_list.append(hydrogen_final_list[step])

编辑:另外,我只是注意到错误,您使用了step =+ 1,与说step = +1step = 1相同。这就是为什么您遇到内存错误,将步骤1定义为0到50之间的原因,因此while循环继续进行。您可能要写的是step += 1,这会增加1并没有将其设置为1
© www.soinside.com 2019 - 2024. All rights reserved.