2016-02-05 46 views
3

爲了通過在python 2.7第二維度的第n個元素進行排序嵌套2D列表(list2D)我可以使用蟒排序itemgetter當量爲N維的嵌套列表

import operator 
sorted(list2D, key=operator.itemgetter(n)) 

如何可以排序的第二維基於第二維和第三維的第n個元素的3D列表(列表3D)?

這將排序list3D下面,目前按順序4,7,2。

list3D = [[[5,4,5,7], 
      [0,1,1,0]], 
      [[2,7,5,7], 
      [1,0,0,1]], 
      [[1,2,5,7], 
      [1,1,1,0]]] 

成sort3D下面在那裏由索引排序[0] [1],第二和第三尺寸爲2,4,7

sort3D = [[[1,2,5,7], 
      [1,1,1,0]], 
      [[5,4,5,7], 
      [0,1,1,0]], 
      [[2,7,5,7], 
      [1,0,0,1]]] 

回答

2

sorted()可以接受將給出一個拉姆達元素,應該返回的東西排序(這裏你的價值)對結果進行排序:

>>> list3D = [[[5,4,5,7], 
       [0,1,1,0]], 
       [[2,7,5,7], 
       [1,0,0,1]], 
       [[1,2,5,7], 
       [1,1,1,0]]] 
>>> sorted(list3D, key=lambda x: x[0][1]) 
[[[1, 2, 5, 7], [1, 1, 1, 0]], [[5, 4, 5, 7], [0, 1, 1, 0]], [[2, 7, 5, 7], [1, 0, 0, 1]]] 

的文檔有great appendix關於使用key=

+0

工程很好,附錄是注意的感謝,雖然會花我一段時間從那裏到那裏只是使用 –