【发布时间】:2019-10-16 14:28:18
【问题描述】:
我需要按特定元素对数组数组进行排序
这是一个数组:
arr=
[0, [71, 554, 258, 793]]
[1, [61, 415, 148, 593]]
[2, [91, 145, 658, 893]]
我需要能够按arr[0][0] 以及内部数组中的任何元素(如arr[0][1] 或arr[0][2])对其进行排序
目前,我可以使用 key=itemgetter(1) 对其进行排序
其中:itemgetter(1) - 是数组 [0, [71, 554, 258, 793]] 的第二个元素
在这个 cese = 71
from operator import itemgetter
array = sorted(array, key=itemgetter(1))
print(*array[:], sep="\n")
如何按内部数组[71, 554, 258, 793]中的任何元素对这个数组进行排序?
所以如果我按内部数组输出中的第二个元素排序应该是这样的:(第 145、415、554 列)
arr=
[2, [91, 145, 658, 893]]
[1, [61, 415, 148, 593]]
[0, [71, 554, 258, 793]]
如果我按内部数组输出中的第三个元素排序应该是这样的:(第 148、258、658 列)
arr=
[1, [61, 415, 148, 593]]
[0, [71, 554, 258, 793]]
[2, [91, 145, 658, 893]]
这有点类似于这个问题:Python Sort Multidimensional Array Based on 2nd Element of Subarray
【问题讨论】:
-
排序(arr, key=lambda x: x[1][1])
-
你是怎么坚持这个的?您只需将
1常量替换为包含列号的变量即可。 -
@Prune 我希望它会这么直截了当,但事实并非如此,你看到索引 1 与第一个数组 [A, [B, C, D]] 的第二个元素有关,其中元素0 = A 元素 1 是 [B, C, D] 并且没有元素 2 它应该像调用数组元素 arr[0][2] 但是这种语法在 key=itemgetter(1) 的上下文中不起作用)
-
@Will 谢谢,这就是我需要的!!
-
@NickPV 随时将您需要的答案标记为“已接受”
标签: python arrays python-3.x sorting