对于N维嵌套列表,python sort itemgetter等效

时间:2016-02-05 06:48:20

标签: python list python-2.7 sorting multidimensional-array

要按python 2.7中第二个维度的第n个元素对嵌套的2D列表(list2D)进行排序,我可以使用

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

如何根据第二维和第三维的第n个元素对3D列表(list3D)的第二维进行排序?

这将对下面的list3D进行排序,目前按顺序为4,7,2。

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

到sort3D下面,它按第二和第三维的indices [0] [1]排序为2,4,7

 String title =  data.getJSONObject(0).getString("announcement_title");
 String content = data.getJSONObject(0).getString("announcement_content");
 String date = data.getJSONObject(0).getString("announcement_date");

1 个答案:

答案 0 :(得分:2)

sorted()可以接受一个将被赋予元素的lambda,并且应该返回一些可排序的东西(这里是你的值)来对结果进行排序:

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

的信息