Python 如何基于元组值对字典进行排序

Python 如何基于元组值对字典进行排序,python,python-3.x,sorting,dictionary,Python,Python 3.x,Sorting,Dictionary,这里有一本类似于 d_ = {"k3":(2,3), "k1":(4,5), "k5":(8,9), "k2":(6,8), "k4":(2,7)} 我必须根据元组中第一个值的降序对其进行排序。 我正在这样做: sorted(d_.items(), key=d_.get(1) , reverse=True) 但我明白了: [('k5', (8, 9)), ('k4', (2, 7)), ('k3', (2, 3)), ('k2', (6, 8)), ('k1', (4, 5))] 输出应

这里有一本类似于

d_ = {"k3":(2,3), "k1":(4,5), "k5":(8,9), "k2":(6,8), "k4":(2,7)}
我必须根据元组中第一个值的降序对其进行排序。 我正在这样做:

 sorted(d_.items(), key=d_.get(1) , reverse=True)
但我明白了:

[('k5', (8, 9)), ('k4', (2, 7)), ('k3', (2, 3)), ('k2', (6, 8)), ('k1', (4, 5))]
输出应如下所示:

[("k5",(8,9)),("k2",(6,8)),("k1",(4,5)),("k3",(2,3)),("k4",(2,7))] 
您可以尝试:

>>> [(k, d_.get(k)) for k in sorted(d_, key=d_.get, reverse=True)]
[('k5', (8, 9)), ('k2', (6, 8)), ('k1', (4, 5)), ('k4', (2, 7)), ('k3', (2, 3))]

注意:此答案的最后两个元素与OP给出的示例答案互换。

像这样简单的东西也可以使用:

>>> d_ = {"k3":(2,3), "k1":(4,5), "k5":(8,9), "k2":(6,8), "k4":(2,7)}
>>> sorted(d_.items(), key = lambda x : -x[1][0])
[('k5', (8, 9)), ('k2', (6, 8)), ('k1', (4, 5)), ('k3', (2, 3)), ('k4', (2, 7))]

请考虑添加一个代码示例,或者修改您在这个问题中发布的代码。目前,它的格式和范围使我们很难帮助您;这是一个让你开始学习的方法。祝你的代码好运!