首页 > 解决方案 > 我想知道是否有一种方法可以使用 sorted() 函数按 2-d 甚至 3-d 数组中的指定索引进行排序

问题描述

我创建了一个 3-d 数组来存储保龄球队的信息。我在脑海中将其组织为一个目录,其中包含团队,这些团队中有个人资料,个人资料包括球员姓名、球队号码和得分。

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

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 循环来做到这一点,但如果使用sorted(). 有没有办法在sorted()函数中使用 key 参数来做到这一点?

标签: pythonsortingmultidimensional-array

解决方案


这就是我最终做的

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]

推荐阅读