2016-07-26 1 views
0

에 대한 배열 :추가] 루프의 각 항목에 다음 코드를

class Calendar_Data(Resource): 
    def get(self): 
    result = [] 
    details_array = [] 
    # Times are converted to seconds 
    for day in life.days: 
     for span in day.spans: 
     if type(span.place) is str: 
      details = { 
      'name': span.place, 
      'date': 0, 
      'value': (span.length() * 60), 
      } 
      details_array.append(details) 
     data = { 
     'date': datetime.datetime.strptime(day.date, '%Y_%m_%d').strftime('%Y-%m-%d'), 
     'total': (day.somewhere() * 60), 
     'details': details_array 
     } 
     result.append(data) 
    return result 

난 할 노력하고있어하는 일의 목록에 표시됩니다 매일, 즉에 해당하는 스팬을 얻을 요일을 입력하고 배열을 details으로 채 웁니다. 그런 다음 detailsdata 배열로 전달하여 해당 요일의 각 요일에 사용합니다.

위의 중첩 루프를 사용할 때 문제는 각 하루 대신 모든 날의 모든 범위로 details을 채 웁니다.

나는이 경우 zip을 사용하여 얇게 만들지 않을 것입니다. 어쩌면 일부 목록을 이해할 지 모르지만 나는 그것을 완전히 이해하지 못했습니다.

예 입력 : 1 월 세부 배열의 제 16에 대한

--2016_01_15 
@UTC 
0000-0915: home 
0924-0930: seixalinho station 
1000-1008: cais do sodre station 
1009-1024: cais do sodre station->saldanha station 
1025-1027: saldanha station 
1030-1743: INESC 
1746-1750: saldanha station 
1751-1815: saldanha station->cais do sodre station 
1815-1834: cais do sodre station {Waiting for the boat trip back. The boat was late} 
1920-2359: home [dinner] 

--2016_01_16 
0000-2136: home 
2147-2200: fabio's house 
2237-2258: bar [drinks] 

3 개 항목을 했어야하지만, 매일 지속적으로 모든 일의 모든 항목을 보여줍니다.

+0

입력의 예, 예상 출력 및 실제 출력을 추가 할 수 있습니까? – IanAuld

+0

@IanAuld 추가했습니다. –

답변

1

각 루프 사이에 목록을 다시 작성하지 않습니다 (파이썬에는 배열이 아니라 목록이 있음). 루프 중 하나에 details_array 작성을 이동 시켜서 빈 것으로 다시 작성해야합니다. 당신은 가능성이 같이하는 WNT 있습니다 :

for day in life.days: 
    details_array = [] 
    for span in day.spans: 

새 빈 목록을 가지고거야 day의 각각의 새로운 반복에 대한이 방법을.

관련 문제