我有一个嵌套列表的深度嵌套元组,如下所示:
在上面的示例中,主元组的长度为3。我想对上述结构进行两级排序。首先,我想根据嵌套列表的第一个值按升序对主列表中的所有3个元素进行排序。因此,在上述情况下,第三个元素将首先出现,因为它具有第一个元素的最低值,即
现在我想再次对上述的
ip = (array([[[ 50, 73]],
[[ 50, 107]],
[[ 55, 108]],
[[ 55, 121]],
[[978, 87]],
[[977, 86]],
[[977, 73]]], dtype=int32),
array([[[ 669, 3]],
[[ 668, 4]],
[[ 667, 4]],
[[1033, 71]],
[[1035, 69]],
[[1035, 4]],
[[ 848, 4]],
[[ 847, 3]],
[[ 813, 3]],
[[ 718, 4]],
[[ 717, 3]]], dtype=int32),
array([[[ 17, 3]],
[[ 16, 4]],
[[ 0, 4]],
[[ 0, 49]],
[[197, 49]],
[[197, 8]],
[[ 84, 4]],
[[ 83, 3]]], dtype=int32))
在上面的示例中,主元组的长度为3。我想对上述结构进行两级排序。首先,我想根据嵌套列表的第一个值按升序对主列表中的所有3个元素进行排序。因此,在上述情况下,第三个元素将首先出现,因为它具有第一个元素的最低值,即
0
。第二个应该是第一个元素,因为它具有50
的第二低值,最后应该是第三个元素,因为它具有1035
的第三低值。第一级排序的输出应为:op = (array([[[ 17, 3]],
[[ 16, 4]],
[[ 0, 4]],
[[ 0, 49]],
[[197, 49]],
[[197, 8]],
[[ 84, 4]],
[[ 83, 3]]], dtype=int32),
array([[[ 50, 73]],
[[ 50, 107]],
[[ 55, 108]],
[[ 55, 121]],
[[978, 87]],
[[977, 86]],
[[977, 73]]], dtype=int32),
array([[[ 669, 3]],
[[ 668, 4]],
[[ 667, 4]],
[[1033, 71]],
[[1035, 69]],
[[1035, 4]],
[[ 848, 4]],
[[ 847, 3]],
[[ 813, 3]],
[[ 718, 4]],
[[ 717, 3]]], dtype=int32),
)
现在我想再次对上述的
op
进行相同的排序,但是不再是根据嵌套列表的第一个值进行排序,而是根据嵌套列表的第二个值进行排序。所以现在最终的输出将如下所示:final_op = (array([[[ 17, 3]],
[[ 16, 4]],
[[ 0, 4]],
[[ 0, 49]],
[[197, 49]],
[[197, 8]],
[[ 84, 4]],
[[ 83, 3]]], dtype=int32),
array([[[ 669, 3]],
[[ 668, 4]],
[[ 667, 4]],
[[1033, 71]],
[[1035, 69]],
[[1035, 4]],
[[ 848, 4]],
[[ 847, 3]],
[[ 813, 3]],
[[ 718, 4]],
[[ 717, 3]]], dtype=int32),
array([[[ 50, 73]],
[[ 50, 107]],
[[ 55, 108]],
[[ 55, 121]],
[[978, 87]],
[[977, 86]],
[[977, 73]]], dtype=int32)
)
非常感谢您的帮助!
提前致以感谢!