Re: [問題] 多維排列問題

看板Python作者 (Apua)時間10年前 (2015/04/08 16:00), 10年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《JetaimeMia (你好)》之銘言: : 各位大大好 : 小魯現在有個多維排序的問題 : 假設有2個list或array : 每一個裡面又有3*3的元素 : e.g. : a=[ [9,8,7], [6,5,4], [3,2,1]] : b=[ [11,12,13], [14,15,16], [17,18,19]] : 我要如何讓b照著a來排序 : 結果希望像是 : [[13,12,11], : [7,8,9]] : 或是 : [[13,7],[12,8],[11,9]]之類的 : 總之就是一個多維array或list照著另一個來排序 : 用了sort, sorted,等等在這種多維的情況下不知道是我哪裡寫錯還是怎樣 : 排不太出來 : 原本是用一個一個抓出來變一維的再排序的方法 : 不過在我的code裡面數據一大就會跑得很慢 : 希望能直接改了再取出來這樣 : 小魯先謝謝各位了 ''' >>> a = (0,1,3,5,8); b = (5,6,4,2,3) >>> dim_sorted(a, b) (5, 8, 3, 0, 1) >>> a = ((0,1,2),(3,4,5)); b = ((2,1,3), (2,3,1)) >>> dim_sorted(a, b) ((1, 0, 2), (5, 3, 4)) ''' def dim_sorted(data, key): return tuple( map(dim_sorted, data, key) if hasattr(data[0], '__iter__') else (data[i] for i,v in sorted(enumerate(key), key=lambda t:t[1])) ) ※ 編輯: apua (36.231.52.231), 04/10/2015 00:45:16
文章代碼(AID): #1L9E0gwN (Python)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1L9E0gwN (Python)