用于对SortedDict进行排序的pythonic方法

时间:2014-02-07 09:19:48

标签: python django dictionary

SortedDict是一个python dict,带有一个附加属性,用作排序,

sorted_dict = {
               'personnel info': {'name': 'p_info', 'priority': 1},
               'educational info': {'name': 'edu_info', 'priority': 3}
               'additional info': {'name': 'adi_info', 'priority': 2}
}
sorted_dict.keyOrder = ['personnel info', 'educational info', 'additional info']

现在我们可以在任何地方使用这个排序的dict进行特定排序。

现在我必须根据优先级对此dict进行排序,即密钥顺序应优先[/ p>]

>>>print sorted_dict.keyOrder
>>> ['personnel info', 'additional info', 'educational info']

任何pythonic方式(如排序)以避免在此处使用forloop / function。

注意:我已经使用初始keyOrder进行了sortedDict。

1 个答案:

答案 0 :(得分:1)

提取优先级和密钥,然后根据优先级进行排序,即

sorted_dict.keyOrder = [key[1] for key in sorted((v['priority'],k) for k,v in sorted_dict.items())]