Python 我想知道是否有一种方法可以使用sorted()函数在二维甚至三维数组中按指定的索引进行排序

Python 我想知道是否有一种方法可以使用sorted()函数在二维甚至三维数组中按指定的索引进行排序,python,sorting,multidimensional-array,Python,Sorting,Multidimensional Array,我为保龄球队创建了一个三维数组来存储信息。我在脑海中把它组织成一个目录,里面有球队,这些球队都有个人资料,个人资料包括球员姓名、球队编号和得分 我创建了一个要使用的测试列表: test = [ [["John",1,153],["Lizzy",1,129],["Matt",1,178]], [["Jorge",2,156],["Brent",2,145],["Kyle",2,207]], [["Chuck",3,300]], [["Joey",4,230],["S

我为保龄球队创建了一个三维数组来存储信息。我在脑海中把它组织成一个目录,里面有球队,这些球队都有个人资料,个人资料包括球员姓名、球队编号和得分

我创建了一个要使用的测试列表:

test = [
    [["John",1,153],["Lizzy",1,129],["Matt",1,178]],
    [["Jorge",2,156],["Brent",2,145],["Kyle",2,207]],
    [["Chuck",3,300]],
    [["Joey",4,230],["Stanley",4,60]]
]

我想创建一个按分数排序的所有配置文件列表,并按名称字母顺序创建另一个列表。我可以用for循环来实现这一点,但使用排序后的循环看起来会更好。有没有办法使用排序函数中的键参数来执行此操作?

下面是我最后要做的

def sort_score(directory):
    sorted_score = []
    for team in directory:
        for profile in team:
            sorted_score.append(profile)
    sorted_score = sorted(sorted_score,key=takeScore,reverse=True)
    return sorted_score

def takeScore(elem):
    return elem[2]

你想做两件事:和


预期的输出是什么?如果需要数组,应该使用numpy。这是一个嵌套列表,按照您想要的方式对其进行排序很繁琐。@gmds排序有什么繁琐之处?@juanpa.arrivillaga以这种方式对所有三个级别进行排序似乎很繁琐,每个级别都有自己的键函数。我可能错了!预期的输出是按分数对所有概要文件进行排序,我意识到这基本上只是将所有团队分开,所以我所做的是将所有概要文件写入一个新列表,然后使用sorted对该列表进行排序,关键参数作为选择第三个索引的函数。这是它的样子
from operator import itemgetter

test = [
    [["John",1,153],["Lizzy",1,129],["Matt",1,178]],
    [["Jorge",2,156],["Brent",2,145],["Kyle",2,207]],
    [["Chuck",3,300]],
    [["Joey",4,230],["Stanley",4,60]]
]

sorted_by_name = sorted([p for team in test for p in team], key=itemgetter(0))

sorted_by_score = sorted([p for team in test for p in team], key=itemgetter(2))