【发布时间】:2011-06-09 02:12:09
【问题描述】:
A question was asked here on SO,几分钟前,关于根据值对字典键进行排序。
几天前我刚读到operator.itemgetter 的排序方法,并决定尝试一下,但它似乎不起作用。
并不是说我对问题的答案有任何问题,我只是想用operator.itemgetter 试试这个。
所以字典是:
>>> mydict = { 'a1': ['g',6],
'a2': ['e',2],
'a3': ['h',3],
'a4': ['s',2],
'a5': ['j',9],
'a6': ['y',7] }
我试过这个:
>>> l = sorted(mydict.itervalues(), key=operator.itemgetter(1))
>>> l
[['e', 2], ['s', 2], ['h', 3], ['g', 6], ['y', 7], ['j', 9]]
这可以按我的意愿工作。但是,由于我没有完整的字典 (mydict.itervalues()),我尝试了这个:
>>> complete = sorted(mydict.iteritems(), key=operator.itemgetter(2))
这不起作用(如我所料)。
那么我如何使用operator.itemgetter 对字典进行排序并在嵌套的键值对上调用itemgetter。
【问题讨论】:
标签: python sorting dictionary