python:排序有序字典

时间:2014-10-23 17:16:47

标签: python sorting dictionary

我创建了一个字典:

d[1] = {'a':1, 'b':2}
d[2] = {'a':5, 'b':3}
d[3] = {'a':3, 'b':2}

然后我尝试按字段排序:

d = collections.OrderedDict(sorted(d.items(), key=itemgetter(1)))

这样我就可以输出:

for key in d:
    print key, d[key]

这对' a'进行排序,但我无法弄清楚如何排序' b'。如何排序' b'?

编辑:我不确定这是怎么回事。我想对排序进行排序,以便按字段' b'中的值排序。

1 个答案:

答案 0 :(得分:5)

修改您的键功能,使其显式返回b值。

d = collections.OrderedDict(sorted(d.items(), key=lambda (key, value): value['b']))

编辑:显然3.X不喜欢在lambdas中解组tuple,所以你可能不得不求助于更长的路:

d = collections.OrderedDict(sorted(d.items(), key=lambda key_value_pair: key_value_pair[1]['b']))