按Python中的内部值状态排序字典

时间:2014-05-12 10:44:50

标签: python sorting python-2.7 dictionary

我们如何使用值的内部状态在python中对字典进行排序?

例如:

myDict = {'a': {'day': [0, 1, 2, 5], 'week': [4, 3, 1, 2, 3]},
          'b': {'day': [0, 6, 2, 5], 'week': [4, 3, 1, 2, 3]}}

我想通过日期列表的第二个值为它们对应的值词典排序字典键。

1 个答案:

答案 0 :(得分:2)

你可以这样排序

print sorted(myDict, key=lambda v: myDict[v]['day'][1])
# ['a', 'b']

key参数接受一个函数,该函数将用于确定在排序期间用于当前项的值。

sorted遍历myDict时,我们会获得每个密钥。因此,对于每个键,我们选择day字典中的第二个元素,并将其用作表示排序期间键的值。

我们所做的是,当排序函数查找a的值时,我们返回1,当它查找b时,我们返回6