我最近遇到了尝试列出清单的问题。当程序运行时,它会根据用户想要看到的代数打印出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)
答案 0 :(得分:0)
greenfly=[juviniles,Adult,Seniles]
在循环的每次迭代中都会调用此行,因此每次循环运行时都会覆盖greenfly
中包含的任何数据,从而导致您看到的行为。
解决此问题的方法是使用greenfly.append([juviniles,Adult,Seniles])
这应该返回[[10, 10, 10], [20, 10, 10], [20, 20, 10], ....]
,依此类推。
请记住在循环之前设置greenfly = []
。