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] 
] 

最初のリスト内のデータは、他のリストには、完了日は、日付となり、最初のリスト内の文字列は、それぞれ他のデータとなっていることと一致します。

最初のリストの文字列をアルファベット順にソートすると、別のリストのインデックス位置に一致するデータが、ソートされた文字列の新しい位置に変更されることが必要でした。最初のデータ文字列の完成日とそれぞれの日付は同じであることに注意してください。

私はいくつかの調査を行い、いくつかの例を見ましたが、2つのリストに関連していました。 zipを使用してソートする例と同じです。どんなアイデアも歓迎されます。

+0

他のリストがありますか?あなたは1つだけを示しています。 –

+0

@cᴏʟᴅsᴘᴇᴇᴅOPはおそらく、提供されたメガリスト内の2つのリストを参照しています。私は本当にここの目標が何であるかは分かりません。 – 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] 
関連する問題