在值为元组的值上排序python字典

时间:2015-10-22 22:01:12

标签: python sorting dictionary

这是我的字典:

    x = {'1':('hi','10','0.1','A'),
         '2':('bye','20','0.3','B')}

我想对第二个元组的第二项进行排序,我尝试了这个。

sorted_x =
sorted(x.items(), key=operator.itemgetter(1), reverse=True)

然而,它没有排序。

我知道1中的key = operator.itemgetter(1)表示排序第二元组而不是元组中的第二项。那么我如何对第二元组中的第二项进行排序?它是值'20''10'的列。

我希望输出:

sorted_x =
[('2',('bye','20','0.3','B')),
 ('1',('hi','10','0.1','A'))]

1 个答案:

答案 0 :(得分:1)

您最想要做的是使用lambda创建一个函数。

这应该有效sorted(x.items(), key=lambda t: t[1][1], reverse=True)。我们的想法是创建一个返回元组t的第二项的第二项的函数。