Python排序2D列表

时间:2018-05-23 11:13:26

标签: python python-3.x

我在python 3.6.5中有一个列表,如下所示

a_list = [['name1', 5, 6, 3, 7], ['name3', 2, 6, 3, 6], ['name3', 2, 10, 8, 5]]

所以它基本上是名字,得分1,得分2等。

我想将分数加起来并将其排名从最高到最低

到目前为止,我有

a_list.sort(a_list, key=lambda x: x[not sure what to put here], reverse=True)

我需要一种在不影响str字段的情况下将列表中的数字相加的方法。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

这应该有效:

a_list = [['name1', 5, 6, 3, 7], ['name3', 2, 6, 3, 6], ['name3', 2, 10, 8, 5]]
a_list.sort(key=lambda x: sum(x[1:]), reverse=True)
print(a_list)

输出:

[['name3', 2, 10, 8, 5], ['name1', 5, 6, 3, 7], ['name3', 2, 6, 3, 6]]