2016-05-07 2 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 = [] перед циклом.