我需要按特定元素对数组数组进行排序
这是一个数组:
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)
-是这个cese = 71中数组[0, [71, 554, 258, 793]]
的第二个元素
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
发布于 2019-05-31 06:59:01
只需定义一个函数,该函数决定要使用的键。您可以使用分部函数基于键索引创建此函数
from functools import partial
def sort_key(si, x):
return x[1][si]
sort_index = 1 # or 1 or 2
partial_sort_key = partial(sort_key, sort_index)
print(sorted(arr, key=partial_sort_key))
https://stackoverflow.com/questions/56386606
复制相似问题