我试图在Python中使用OrderedDict
,在这里我使用lambda
对字典数据进行排序。不知怎的,我写得不对。关于这篇文章
sorting a nested dictionary with lists in python
我试着用两把钥匙订字典 1第一组(信息、代码、过程等) 2作为内部字典的第二个元组值(7、2、45、18、19等)。然而,没有得到我想要的。这是我的意见-
a = {'Info': {3: ('info1', 7), 4: ('info4', 2)},
'Process': {1: ('info2', 45), 8: ('info8', 18), 10: ('info11', 19)},
'Code': {23: ('info3', 45), 27: ('info21', 34)}}
print sorted(a.items(), key=lambda x: (x[1].values()[0][1], x[0]))
最后,我希望以OrderedDict
的形式获取这些信息,并以特定的顺序对其进行迭代。你知道吗
有人能帮忙吗?你知道吗
谢谢各位的回复! 只是添加预期的输出。请参阅,首先按主键(Code、Info、Process)排序,然后按值元组中的第二个元素(34、45)、(2、7)、(18、19、45)排序内部字典
a = {'Code': {27: ('info21', 34), 23: ('info3', 45)},
'Info': {4: ('info4', 2), 3: ('info1', 7)},
'Process': {8: ('info8', 18), 10: ('info11', 19), 1: ('info2', 45)},
}
如果我们跳过第一个键的顺序,也就是说,只有内部字典是由值元组(34,45),(2,7),(18,19,45)中的第二个元素排序的,我就可以了。所以在这种情况下,预期的答案是:
a = {'Info': {4: ('info4', 2), 3: ('info1', 7)},
'Process': {8: ('info8', 18), 10: ('info11', 19), 1: ('info2', 45)},
'Code': {27: ('info21', 34), 23: ('info3', 45)},
}
我希望这能解释我的问题。 再次感谢你这么快的回复。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐