2013-07-21 5 views
-1

Привет, все, у меня есть список, созданный в конце цикла for. Последняя строка:Возврат списка в другой список из цикла for

newlist.append(variable) 

Я запускаю цикл и возвращает значение, но он перезаписывается в следующем цикле. Таким образом, что я хочу сделать, это вернуть newlist в newlist2, чтобы при переходе по циклу я мог получить все списки в newlist2, чтобы возвращались все значения.

Например, в конце первого цикла список

newlist = ['name', 20, 50, 70] 

Я хочу добавить, что

newlist2 = [['name', 20, 50, 70]] 

затем второй раз через я получить

newlist = ['name', 50, 70, 90] 

и я хочу добавить это в новый список2 таким образом, чтобы

newlist2 =  [['name', 20, 50, 70], ['name', 50, 70, 90]] 

Возможно ли это? Я делаю это неправильно или вам нужно использовать расширение вместо этого?

EDIT: Это код, который уже был сконструирован с помощью справки.

newlist=[] 
for each in StationList: 
    if calculateDistance(Eastingbase, Northingbase, each[1], each[2])< radius: 
     Relevantfilename = each[0] 
     print Relevantfilename 
     with open(Relevantfilename, 'rU') as input: 
      dL= list(csv.reader(input)) 
      total2 = sum(int(i[2]) for i in dL if '2011' in i) 
      print total2, "is average for", each[0] 
      try: 
       average = total2/float(len([int(i[2]) for i in dL if '2011' in i])) 
       print average,"is average for", each[0] 
      except ZeroDivisionError: 
       print 0 
      each.append(average) 
     print each 
     newlist.append(each) 
+0

Да, вы можете сделать это с помощью 'append'. Можете ли вы показать свой код? –

+1

Просто добавьте код, который у вас есть к вашему вопросу. –

+0

Добавлен код @RohitJain, можно ли вернуть список? – user2603519

ответ

1

Я думаю, что вы хотите сделать что-то вроде этого:

>>> def list_of_list(): 
...  all_lists = [] 
...  for _ in range(3): 
...   all_lists.append([1, 2]) 
...  return all_lists 
... 
>>> 
>>> list_of_list() 
[[1, 2], [1, 2], [1, 2]] 

Я просто приложил [1, 2] каждый раз для демонстрационных целей. Вы можете добавить туда любой список.

+0

Как мне показать свой код? – user2603519

+0

@ пользователь2603519. Добавьте его к своему вопросу. –

+0

Просто создайте пустой список вне цикла for. И добавьте «каждый» в этот список, где вы его печатаете. –

0

Как предложил Rohit Jain добавить новый список вне цикла for и добавить.

То, что у меня было оригинально, пыталось добавить в новый список внутри цикла for. Таким образом, каждый раз в цикле выполнялись значения, которые вычислялись и производились в каждом списке, и были добавлены в цикл, однако он был перезаписан, поскольку список не был помещен за пределы списка. Таким образом, чтобы возвращать список из списка в цикле for, вы просто устанавливаете новый список на передний план и добавляете к нему.

Ответ теперь обновлен в моем коде, который работает сейчас.