正在努力保存列表列表

2024-06-26 03:14:23 发布

您现在位置: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)

Tags: 用户程序运行信息generationtotalprint代数generations
1条回答
网友
1楼 · 发布于 2024-06-26 03:14:23
greenfly=[juviniles,Adult,Seniles]

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

对付这种情况的一种方法是使用greenfly.append([juviniles,Adult,Seniles])

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

记住在循环之前设置greenfly = []。你知道吗

相关问题 更多 >