如何根据列表值对元组进行排序?

时间:2019-04-25 22:09:39

标签: python sorting tuples

我的结构如下:

players={ 'Player one': [3, 0], 'Player two': [13, 1], 'Player three': [29, 0], 'Player four': [19, 5] }

列表的第一个数字是游戏数,第二个是目标数。

要按照我刚刚使用的游戏数量对数组进行排序:

print sorted(players.items(), key=lambda kv:(kv[1], kv[0]),reverse=True)

这很好用,但是我找不到按目标数(列表的第二个数)排序的方法。 最简单的方法是什么?

2 个答案:

答案 0 :(得分:1)

您可以使用此列表的第二个数字进行独占排序:

sorted(players.items(), key=lambda kv: kv[1][1], reverse=True)

lambda kv: kv[1][1]基本上从每个列表[1]提取第二个kv[1]

答案 1 :(得分:0)

您只需在第二个索引中指定搜索即可

players={ 'Player one': [3, 0], 'Player two': [13, 1], 'Player three': [29, 0], 'Player four': [19, 5] }

sorted(players.items(), key=lambda kv:(kv[1][1], kv[0]),reverse=True))