【发布时间】:2018-10-04 02:16:20
【问题描述】:
我有一个列表,其中包含不同大小的元素(有些甚至是空的):
a1 = [array([[83, 84]]), array([[21, 24], [32, 53],[54, 56]]), array([[21,24],[32, 37],[45, 46]]), [], []]
在这个列表中,值要么成对出现(在数组中),要么只是空的。我要做的就是根据它们的差异按降序对所有对进行排序,并将它们的位置/索引保留在原始列表中(即a1)。例如,我想要的输出是:
a1_sorted = [[32,53],[32,37],[21,24],[21,24],[54,56],[45,46],[83,84],[],[]]
a1_index = [[1,1],[2,1],[1,0],[2,0],[1,2],[2,2],[0,0],[3,0],[4,0]]
由于空元素没有二维位置,下面仅指示元素的第一个索引也是一个合适的替代方案:
a1_index = [1,2,1,2,1,2,0,3,4]
简单地遍历列表条目是我最初的方法,但处理空元素和不同的维度大小减慢了这项工作。关于最佳解决方案的任何想法?
【问题讨论】:
-
到目前为止,您是否为此编写过任何代码,或者您目前正在探索不同的解决方案?
-
a1的内容是numpy数组吗? -
@zenwraight 我正在探索不同的解决方案。
-
@c2huc2hu 值对在 numpy 数组中,而空条目只是空列表。
标签: python arrays list sorting