foo*_*ion 3 python sorting dictionary
我创建了一个字典:
d[1] = {'a':1, 'b':2}
d[2] = {'a':5, 'b':3}
d[3] = {'a':3, 'b':2}
Run Code Online (Sandbox Code Playgroud)
然后我尝试按字段排序:
d = collections.OrderedDict(sorted(d.items(), key=itemgetter(1)))
Run Code Online (Sandbox Code Playgroud)
这样我就可以输出:
for key in d:
print key, d[key]
Run Code Online (Sandbox Code Playgroud)
这对'a'排序,但我无法弄清楚如何对'b'进行排序.我如何排序'b'?
编辑:我不确定这是不清楚的.我想排序,以便输出按字段'b'中的值排序.
修改您的键功能,以便显式返回b值.
d = collections.OrderedDict(sorted(d.items(), key=lambda (key, value): value['b']))
Run Code Online (Sandbox Code Playgroud)
编辑:显然3.X不喜欢在lambdas中解组tuple,所以你可能不得不求助于更长的方式:
d = collections.OrderedDict(sorted(d.items(), key=lambda key_value_pair: key_value_pair[1]['b']))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2438 次 |
| 最近记录: |