2016-05-07 3 views
0

最近、リストのリストを作成しようとする問題が発生しました。プログラムが実行されると、何世代にもわたって見ることができるように、緑の世代が印刷されます。リストのリストを保存するのに苦労しています

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
greenfly=[juviniles,Adult,Seniles] 

この行はループの繰り返しごとに呼び出されるため、ループが実行されるたびにgreenflyに含まれるデータが上書きされ、結果として表示される動作になります。

これはgreenfly.append([juviniles,Adult,Seniles])

は、このように[[10, 10, 10], [20, 10, 10], [20, 20, 10], ....]とを返す必要があります使用することです戦うための方法。

ループの前にgreenfly = []を設定することを忘れないでください。

関連する問題