首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python排序多维数组

Python排序多维数组
EN

Stack Overflow用户
提问于 2019-05-31 06:51:26
回答 1查看 330关注 0票数 -1

我需要按特定元素对数组数组进行排序

这是一个数组:

代码语言:javascript
复制
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]]的第二个元素

代码语言:javascript
复制
from operator import itemgetter
array = sorted(array, key=itemgetter(1))
print(*array[:], sep="\n")

如何按内部数组[71, 554, 258, 793]中的任何元素对此数组进行排序

因此,如果我按内部数组中的第二个元素进行排序,则输出应如下所示:(列145,415,554)

代码语言:javascript
复制
arr= 
[2, [91, 145, 658, 893]]
[1, [61, 415, 148, 593]]
[0, [71, 554, 258, 793]]

如果我从内部数组中按第三个元素排序,输出应该如下所示:(第148,258,658列)

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2019-05-31 06:59:01

只需定义一个函数,该函数决定要使用的键。您可以使用分部函数基于键索引创建此函数

代码语言:javascript
复制
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))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56386606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档