努力保存列表清单

时间:2016-05-07 09:44:40

标签: python

我最近遇到了尝试列出清单的问题。当程序运行时,它会根据用户想要看到的代数打印出greenfly的代数。

generation 1  [10, 10, 10] Total 30
generation 2 [20, 10, 10] Total 40
generation 3 [20, 20, 10] Total 50
generation 4 [40, 20, 20] Total 80
generation 5 [40, 40, 20] Total 100
generation 6 [80, 40, 40] Total 160

如果我想显示这些结果(例如显示给csv),我需要这些结果中的所有信息。但是,当我打印保存此信息的变量时(在这种情况下' greenfly')它只打印程序运行的最后一代。

print(greenfly)

(看起来像什么)

[80,40,40]

如何运行程序,以便打印已显示的所有其他信息:

generation 1  [10, 10, 10] Total 30
generation 2 [20, 10, 10] Total 40
generation 3 [20, 20, 10] Total 50
generation 4 [40, 20, 20] Total 80
generation 5 [40, 40, 20] Total 100
generation 6 [80, 40, 40] Total 160

请帮忙吗?........(完整代码显示在下方)

 greenfly = [popJuveniles,popAdults,popAdults]
    Total1 = greenfly[0]+greenfly[1]+greenfly[2]
    print("generation 1 ",greenfly,"Total",Total1)
    '''popall=[greenfly,Total1]
    print (popall)'''

    generation = 1
    while generations!= 1:

        generation = generation + 1
        generations = generations - 1
        juviniles=greenfly[1]*2
        Adult=greenfly[0]
        Seniles=greenfly[1]
        greenfly=[juviniles,Adult,Seniles]

        Total = greenfly[0]+greenfly[1]+greenfly[2]


        print("generation",generation,greenfly,"Total",Total)



if Menuchoice =='4':
    print("You have chosen option 4 ")

    print(greenfly)

1 个答案:

答案 0 :(得分:0)

greenfly=[juviniles,Adult,Seniles]

在循环的每次迭代中都会调用此行,因此每次循环运行时都会覆盖greenfly中包含的任何数据,从而导致您看到的行为。

解决此问题的方法是使用greenfly.append([juviniles,Adult,Seniles])

这应该返回[[10, 10, 10], [20, 10, 10], [20, 20, 10], ....],依此类推。

请记住在循环之前设置greenfly = []