2017-11-17 1 views
-2

빌드 될 때 데이터가 누적 막대 차트 만들기로 전달되는 동적 채워진 목록이 있습니다. 목록의 데이터가 정렬되어 있으므로 차트도 정렬됩니다.첫 번째 목록의 데이터 위치를 사용하여 여러 목록 정렬

list: [ 
    ['Completion Date', 'New', 'NW-New', 'NW-Info', 'NW-Dec', 'NS-Modify', 'SN-Mod', 'VW-NwClter', 'NW-Del', 'VW-ModClter'], 
    ['10/15/2017', 1, 0, 0, 0, 0, 0, 0, 0, 0], 
    ['10/16/2017', 5, 8, 3, 2, 1, 0, 0, 0, 0], 
    ['10/17/2017', 1, 9, 0, 29, 3, 3, 0, 0, 0], 
    ['10/18/2017', 4, 44, 0, 11, 1, 0, 2, 0, 0], 
    ['10/19/2017', 4, 39, 0, 0, 1, 0, 0, 1, 0], 
    ['10/20/2017', 3, 2, 0, 0, 0, 1, 0, 0, 6], 
    ['10/21/2017', 0, 0, 0, 0, 0, 0, 2, 0, 0], 
    ['10/22/2017', 0, 0, 0, 0, 0, 0, 0, 0, 0], 
    ['10/23/2017', 1, 67, 0, 85, 3, 2, 0, 1, 0], 
    ['10/24/2017', 2, 25, 1, 4, 5, 0, 0, 1, 1], 
    ['10/25/2017', 4, 65, 0, 11, 5, 0, 0, 11, 1], 
    ['10/26/2017', 7, 40, 0, 0, 6, 0, 0, 2, 0], 
    ['10/27/2017', 2, 37, 0, 115, 2, 0, 0, 0, 0], 
    ['10/28/2017', 2, 0, 0, 0, 0, 0, 0, 0, 0], 
    ['10/29/2017', 0, 0, 0, 0, 0, 0, 0, 0, 0], 
    ['10/30/2017', 5, 53, 0, 0, 3, 0, 0, 1, 0], 
    ['10/31/2017', 1, 30, 0, 19, 3, 0, 0, 0, 0], 
    ['11/01/2017', 6, 106, 0, 2, 1, 0, 0, 1, 1], 
    ['11/02/2017', 5, 74, 0, 10, 0, 0, 0, 9, 0] 
] 

제리스트의 데이터는 다른리스트에서 완료일 날짜로 들어가고 제 목록의 문자열 각각 다른 데이터와 일치하는 것으로 진행한다.

첫 번째 목록의 문자열이 사전 순으로 정렬 된 경우 다른 목록의 색인 위치와 일치하는 데이터가 정렬 된 문자열의 새 위치로 변경되는 상황이 필요했습니다. 첫 번째 데이터 문자열 완성 날짜와 해당 날짜는 동일하게 유지됩니다.

몇 가지 조사를하고 몇 가지 예를 보았지만 두 목록과 관련이 있습니다. zip을 사용하여 정렬하는 예와 같습니다. 어떤 아이디어라도 환영 할 것입니다.

+0

다른 목록은? 당신은 하나만 보여 줬어. –

+0

@ cᴏʟᴅsᴘᴇᴇᴅ OP는 아마도 제공된 메가 목록 내의 두 목록을 참조하고있을 것입니다. 그래도 목표가 무엇인지는 잘 모르겠다. – miradulo

+0

내부 목록이 비어있는 내부 목록 [및 [내부 목록에 다른 목록이 포함되어 있습니다. –

답변

0

당신이 묻는대로 :

첫 번째 목록에있는 문자열을 알파벳 순으로 정렬되어있는 경우, 다음 정렬 된 문자열의 새로운 위치로 다른 목록 변경에 인덱스 위치와 일치하는 데이터입니다.

당신은 당신의 필요에 따라 도움을 받아이 솔루션에서 암시하고 수정할 수 있습니다

list1=[ 
    ['Completion Date', 'New', 'NW-New', 'NW-Info', 'NW-Dec', 'NS-Modify', 'SN-Mod', 'VW-NwClter', 'NW-Del', 'VW-ModClter'], 
    ['10/15/2017', 'second', 'third', 'forth', 'fifth', 'sixth', 'seven', 'eight', 'nine', 'ten'], 
    ['10/16/2017', 5, 8, 3, 2, 1, 0, 0, 0, 0], 
    ['10/17/2017', 1, 9, 0, 29, 3, 3, 0, 0, 0], 
    ['10/18/2017', 4, 44, 0, 11, 1, 0, 2, 0, 0], 
    ['10/19/2017', 4, 39, 0, 0, 1, 0, 0, 1, 0], 
    ['10/20/2017', 3, 2, 0, 0, 0, 1, 0, 0, 6], 
    ['10/21/2017', 0, 0, 0, 0, 0, 0, 2, 0, 0], 
    ['10/22/2017', 0, 0, 0, 0, 0, 0, 0, 0, 0], 
    ['10/23/2017', 1, 67, 0, 85, 3, 2, 0, 1, 0], 
    ['10/24/2017', 2, 25, 1, 4, 5, 0, 0, 1, 1], 
    ['10/25/2017', 4, 65, 0, 11, 5, 0, 0, 11, 1], 
    ['10/26/2017', 7, 40, 0, 0, 6, 0, 0, 2, 0], 
    ['10/27/2017', 2, 37, 0, 115, 2, 0, 0, 0, 0], 
    ['10/28/2017', 2, 0, 0, 0, 0, 0, 0, 0, 0], 
    ['10/29/2017', 0, 0, 0, 0, 0, 0, 0, 0, 0], 
    ['10/30/2017', 5, 53, 0, 0, 3, 0, 0, 1, 0], 
    ['10/31/2017', 1, 30, 0, 19, 3, 0, 0, 0, 0], 
    ['11/01/2017', 6, 106, 0, 2, 1, 0, 0, 1, 1], 
    ['11/02/2017', 5, 74, 0, 10, 0, 0, 0, 9, 0] 
] 


track={index:value for index,value in enumerate(list1[0])} #create a dict for keep tracking of old index 


sorted_list=sorted(list1[0]) #sorting the first sub_list which have headers 


for item in list1[1:]: 
    right = [0] * len(item) 
    for index,value in enumerate(item): 
     if index in track: 
      index_no=sorted_list.index(track.get(index))  #sorting other than first sub_list according to sorted first sub_list 
      right[index_no]=value 

    print(right) 

출력 :

['10/15/2017', 'sixth', 'fifth', 'nine', 'forth', 'third', 'second', 'seven', 'ten', 'eight'] 
['10/16/2017', 1, 2, 0, 3, 8, 5, 0, 0, 0] 
['10/17/2017', 3, 29, 0, 0, 9, 1, 3, 0, 0] 
['10/18/2017', 1, 11, 0, 0, 44, 4, 0, 0, 2] 
['10/19/2017', 1, 0, 1, 0, 39, 4, 0, 0, 0] 
['10/20/2017', 0, 0, 0, 0, 2, 3, 1, 6, 0] 
['10/21/2017', 0, 0, 0, 0, 0, 0, 0, 0, 2] 
['10/22/2017', 0, 0, 0, 0, 0, 0, 0, 0, 0] 
['10/23/2017', 3, 85, 1, 0, 67, 1, 2, 0, 0] 
['10/24/2017', 5, 4, 1, 1, 25, 2, 0, 1, 0] 
['10/25/2017', 5, 11, 11, 0, 65, 4, 0, 1, 0] 
['10/26/2017', 6, 0, 2, 0, 40, 7, 0, 0, 0] 
['10/27/2017', 2, 115, 0, 0, 37, 2, 0, 0, 0] 
['10/28/2017', 0, 0, 0, 0, 0, 2, 0, 0, 0] 
['10/29/2017', 0, 0, 0, 0, 0, 0, 0, 0, 0] 
['10/30/2017', 3, 0, 1, 0, 53, 5, 0, 0, 0] 
['10/31/2017', 3, 19, 0, 0, 30, 1, 0, 0, 0] 
['11/01/2017', 1, 2, 1, 0, 106, 6, 0, 1, 0] 
['11/02/2017', 0, 10, 9, 0, 74, 5, 0, 0, 0] 
관련 문제